2010-11-21 44 views
1

是否可以驗證用戶的用戶名+密碼沒有登錄?我明白了一個常用的登錄塊將是這樣的:ASP.NET - 驗證用戶而不登錄它們?

if (!Page.IsValid) 
return; 

if (Membership.ValidateUser(UsernameInput.Text, PasswordInput.Text)) 
{ 
    FormsAuthentication.RedirectFromLoginPage(UsernameInput.Text, false); 
} 
else { [...] } 

隨着Membership.ValidateUser()調用設置爲響應中的Cookie。

但是,在確認密碼後還有一些額外的檢查。 (例如,拉出該用戶的失效日期)。

有沒有辦法做到這一點,而不只是打電話FormsAuthentication.SignOut();無效的頁面?

+0

如果用戶名/密碼在數據庫中存在,你是否需要進行驗證? – Sudantha 2010-11-21 05:08:03

+0

@Overflow;如何調用'FormsAuthentication.Authenticate()'? – BeemerGuy 2010-11-21 05:08:21

+0

@BeemerGuy:無法工作:「Authenticate方法驗證存儲在應用程序配置文件的憑證部分中的用戶憑證。或者,您可以使用ASP.NET成員資格來存儲用戶憑證並調用ValidateUser以驗證憑證「。 http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.authenticate.aspx – Greg 2010-11-22 13:48:18

回答

3

我認爲你的設想是Membership.ValidateUser設置cookie是錯誤的。我不相信它會設置cookie。

FormsAuthentication.RedirectFromLoginPage設置cookie。

想想看,從關注角度出發的分離:

會員是您存儲用戶和密碼,但它確實不知道的網頁或餅乾什麼。

表單身份驗證是保持用戶登錄到網站但不關心如何確定該用戶是否有效的技術。所有它關心的是有一個用戶名和設置/讀取cookie,以便用戶不必每次登錄請求。