Q 1. 据我了解FormsAuthenticationModule
是订阅AuthenticateRequest
事件,因此只有在这个事件被触发后,才会被FormsAuthenticationModule
调用。但是下面的引用让我有点困惑:
该
AuthenticateRequest
事件表明配置的身份验证机制已对当前请求进行身份验证。- 上面的引用不是表明在
AuthenticateRequest
引发事件时,请求(又名用户)已经过身份验证吗?
- 上面的引用不是表明在
订阅
AuthenticateRequest
事件可确保在处理附加的模块或事件处理程序之前对请求进行身份验证。- 据我了解这句话,如果我们订阅
AuthenticatedRequest
,那么我们的事件处理程序将在FormsAuthenticationModule
? 因此Application_AuthenticateRequest()
会在被调用之前FormsAuthenticationModule
被调用吗?
- 据我了解这句话,如果我们订阅
Q 2. 我正在学习的书建议Application_AuthenticateRequest()
我们能够验证用户是否是特定角色的成员,如果不是,我们可以自动添加用户:
protected void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (User.Identity.IsAuthenticated && Roles.Enabled)
{
//here we can subscribe user to a role via Roles.AddUserToRole()
}
}
从上面的代码来看,在被调用Application_AuthenticateRequest()
之后FormsAuthenticationModule
被调用,但是同一本书的其他地方暗示Application_AuthenticateRequest()
在之前被调用FormsAuthenticationModule
:
Application_AuthenticateRequest
在执行身份验证之前调用。这是创建您自己的身份验证逻辑的起点。
我错过了什么?
谢谢