![]() |
1
11
在global.asax的应用程序类中编写以下方法
或者,您可以使用继承到控制器的system.web.mvc.controller的“user”属性(注意:确保在成功验证用户登录时调用formsAuthentication.setAuthcookie方法)。 |
![]() |
2
6
实现这一点的最佳方法是编写一个自定义身份验证模块,并将其挂接到应用程序中。此模块将在任何请求之前执行,并有机会根据需要设置httpContext.user属性。 例如,考虑窗体身份验证模块。在运行HTTP处理程序(无论是.aspx页、MVC管道等)之前,它有机会截获请求。它读取登录cookie的值,解密并验证加密的cookie值,如果检查通过,则设置httpContext.user。这样,当处理程序运行并实际处理请求时,用户属性已经被正确设置。 最后,这看起来像是您不需要ASP.NET上的自定义授权属性,因为框中已经提供的[authorize]属性将自动与您的自定义身份验证模块一起工作。但是,您的accountController.logon()方法(或者您用来代替它的任何方法)将需要与生成将由身份验证模块验证的令牌的适当身份验证提供程序通信。这应该是唯一需要编写不同于框中提供的代码的地方。 见 http://social.msdn.microsoft.com/Search/en-US?query=http%20modules 和 http://social.msdn.microsoft.com/Search/en-US?query=custom%20authentication%20asp.net 更多信息。 |
|
user5126784 · Asp。Net MVC自定义授权不工作 8 年前 |