2011-02-08 106 views
6

我目前ASP.Net身份驗證有一個奇怪的問題。 考慮以下兩行:FormsAuthentication.Authenticate無法驗證

MembershipCreateStatus ct = new MembershipCreateStatus(); 
Membership.CreateUser("admin", "mypassword", "[email protected]", "1", "1", true, out ct); 

這並不在我的數據庫中註冊我的用戶。我已經證實了這一點。 然而,當我後立即運行此:

FormsAuthentication.Authenticate("admin", "mypassword"); 

的認證失敗。奇怪的是,我知道一個事實,即用戶沒有在數據庫中存在,並且被進一步證實,如果我跑

MembershipUserCollection uc = Membership.FindUsersByName("admin"); 

和UC確實握住我的管理員用戶枝條所有適當的信息。 任何有關Authenticate爲什麼會返回false的想法或提示?

+0

整個序列是否帶有單個http請求?您可以嘗試在兩個不同的請求過程中執行此操作。如何創建一次「管理」,Session.Abandon(),重新加載頁面,然後看看你是否能夠進行身份驗證。 – xanadont 2011-02-08 07:47:27

+0

Hrm nope。即使我嘗試在單獨的頁面上進行身份驗證。問題必須來自密碼部分嗎?我的意思是,如果用戶存在,還有什麼可能會出錯? – snwr 2011-02-08 07:51:50

回答

4

我之前學到了一些東西 - 當在MSDN上查找信息時總是閱讀備註部分。您會驚訝於它通常包含最重要的信息,如果沒有涵蓋,可能會讓您陷入幾個小時甚至幾天。請參閱該部分的方法here。然後致電ValidateUser授權與認證不同。看看here