2

好的,所以我實現了一個自定義的ExtendedMembershipProvider,以便與MVC4應用程序一起使用,所有這些都是有線的,並且可以正常工作,但是我一直在使用表單身份驗證cookie。ExtendedMembershipProvider和WebSecutiry.Login,persistCookie在哪裏去?

我正在創建我自己的cookie,當直接調用我的登錄過程時很好,但是如果我使用WebSecurity.Login函數,我似乎無法控制自己的cookie。

因此,這使我對我的問題,WebSecurity.Login有三個參數(其中一個是可選的):

public static bool Login(
    string userName, 
    string password, 
    bool persistCookie (optional) 
) 

現在這個函數調用了ExtendedMembershipProvider只需要兩個參數的ValidateUser功能:

public abstract bool ValidateUser(
    string username, 
    string password 
) 

persistCookie參數在哪裏去? WebSecurity.Login是否處理cookie生成本身,如果可以,我該如何覆蓋它?

任何幫助是非常感謝的傢伙!

回答

0

WebSecurity.Login可能執行下面的代碼:

static bool Login(string userName, string password, bool persistCookie) 
{ 
    if(System.Web.Security.Membership.Provider.ValidateUser(userName, password)) 
    { 
     System.Web.Security.FormsAuthentication.SetAuthCookie(userName, persistCookie); 
     return true; 
    } 

    return false; 
} 

如果你想改變自己的行爲,按照從以下answer準則改變這個片段。