preview:在我的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
。 - 我不使用會員引擎。
佔位符:如果登錄cookie過期
http://msdn.microsoft.com/en-us/library/aa289844(v=vs.71).aspx
正如你所說,這不是一個答案。第#8行是**即將設置**認證。所以看起來'N'行'#3'記得從'N-1'階段的身份驗證(ps我不使用成員資格) –
我已經通過你提供的鏈接,我想你已經錯過了例程是在做。第8行不設置認證,畢竟它將現有身份重新應用到它正在生成的新主體。你提供的鏈接甚至可以解釋它。新原則是舊原則的副本,但新原則包含與用戶賬戶相關的角色。這是因爲您無法將角色添加到現有主對象的角色對象。 –
Craig,將Iprincipal對象設置爲'context.User'的行爲_IS_是什麼導致IsAuthenticate獲得true/false。所以它確實設置了認證。不過,我想我知道我的問題是什麼。我不在整個站點使用表單身份驗證。我將它設置爲常規和每個請求 - 我將Context.User設置爲值。但(!)與表單認證,它會自動執行。因此_if_條件。 –