[英]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.