簡體   English   中英

如何使用MembershipProvider手動登錄用戶?

[英]How do I manually log a user in with a MembershipProvider?

我正在嘗試在asp.net中編寫自己的自定義MembershipProvider ,我想要滾動自己的登錄頁面。 我們在登錄時做了一些相當特殊的事情,所以我們不能使用默認的登錄控件,所以我需要一種手動登錄用戶的方法。

到目前為止,我還沒有找到任何關於如何編寫自己的登錄控件的內容,所以我在這里,想知道如何通過MembershipProvider手動登錄用戶。

我試過了

Membership.ValidateUser("user", "pass");

雖然它確實在我的自定義MembershipProvider上調用ValidateUser() ,並且它確實返回true,但它實際上並沒有登錄我。

順便說一句,我對整個MembershipProvider東西都相當新,所以如果我的波長不合適,請隨時告訴我。

if (Membership.ValidateUser(Username.Text, Password.Text))
{

   FormsAuthentication.SetAuthCookie(Username.Text, false);
   FormsAuthentication.RedirectFromLoginPage(Username.Text, false);
}
else
{
// do something else
}

以上內容是在工作代碼中使用自定義成員資格提供程序復制的,就像您的情況一樣,我們需要在登錄時做一些額外的工作。 (為了保護無辜的人,我們進行了敏感的行動。)

MembershipProvider僅存儲有關用戶的數據,實際登錄和會話處理由AuthenticationProvider處理。 例如,如果您正在使用表單(基於cookie)身份驗證,請查看FormsAuthentication.SetAuthCookie以及該類中的其他相關方法。

為了將來參考,如果您使用Reflector查看裝配體內部,可以查看任何組件的內部代碼:

有一個免費版本,可以滿足您的一切需求。

此外,您不必創建自己的Login控件,因為Login是非常可擴展的。 您可以編輯模板並處理各種事件,以使其執行您想要的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM