预览:在我的web.config中 - 我不使用表单身份验证。我自己设置表单cookie。
然而 - 有时我看到这样的代码:
/*1*/ protected void Application_AuthenticateRequest(Object sender, EventArgs e)
/*2*/ {
/*3*/ if (HttpContext.Current.User != null)
/*4*/ {
/*5*/ if (HttpContext.Current.User.Identity.IsAuthenticated)
/*6*/ {
/*7*/ //...
/*8*/ HttpContext.Current.User = ....
/*9*/ //...
/*10*/ }
/*11*/ }
/*12*/ }
查看第#5
行 -
如果第8行即将设置身份验证,如何进行身份验证?
我的意思是 - 第8行是为特定请求设置身份验证的人,当请求完成时,没有"内存" 为将来的要求。 (cookie过期仅仅是 - 保留持久cookie的时间长度。)
问题
#5
会返回true
?#3
行会null
? nb,此问题假定begin_request
事件未设置任何内容,并且设置身份验证的唯一阶段是Application_AuthenticateRequest
。 - 我不知道使用会员引擎。
占位符:
http://msdn.microsoft.com/en-us/library/aa289844(v=vs.71).aspx
答案 0 :(得分:1)
如果登录cookie过期,第3行可以变为空。 如果用户已登录,则#5行为真。
看起来这两种方法是相辅相成的,事实上它们确实如此。检查HttpRequest.IsAuthenticated
可能更容易。有关详细信息,请参阅此处:
asp.net membership IsApproved false but still allowing login
在这里:
http://msdn.microsoft.com/en-us/library/system.web.httprequest.isauthenticated%28loband%29.aspx
我对你的主要问题没有答案。遗憾。
除了下面的评论,您可能会发现此链接有助于解释为现有原则添加角色的能力。 http://msdn.microsoft.com/en-us/library/vstudio/5k850zwb%28v=vs.100%29.aspx