2010-10-23 118 views
2

我創建使用窗體身份驗證, 我的網站登錄,我不明白爲什麼創造了機票,將它添加到餅乾後爲什麼後驗證是假HttpContext.Current.Request.IsAuthenticated

如果我檢查HttpContext.Current.Request.IsAuthenticated

我得到錯誤。只有在連續請求的用戶成爲身份驗證

這是我的代碼

var fat = new FormsAuthenticationTicket(
    1, 
    username, 
    DateTime.Now, 
    DateTime.Now.AddMinutes(20), 
    rememberMe, 
    contact.Id + "," + contact.Role.Id, 
    FormsAuthentication.FormsCookiePath); 
HttpContext.Current.Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, FormsAuthentication.Encrypt(fat))); 

在這一點上,如果我檢查HttpContext.Current.Request.IsAuthenticated我得到假的,我想到了這點用戶認證...

這是我的配置

<authentication mode="Forms"> 
    <forms loginUrl="/Admin/Login.aspx" name="FormAuthentication" /> 
</authentication> 
<authorization> 
    <deny users="?"/> 
</authorization> 

感謝。

+0

五個問題,不接受。不太好!! – 2011-04-11 06:38:17

回答

5

因爲這就是它的工作原理。該屬性嘗試從請求中讀取cookie,但沒有任何因爲請求發送時客戶端尚未通過身份驗證。 cookie已設置,並在連續的客戶端請求發送到服務器。

成功驗證用戶身份後,您可以使用Response.Redirect重定向到網站的身份驗證部分。另一種可能性是直接使用RedirectFromLoginPage方法執行兩件事:它發出cookie並重定向到<forms>標記中指定的頁面。

相關問題