Asp.net mvc 4 ExtendedMembershipProvider和WebSecurity.Login,persistCookie去哪里了?

Asp.net mvc 4 ExtendedMembershipProvider和WebSecurity.Login,persistCookie去哪里了?,asp.net-mvc-4,cookies,forms-authentication,membership-provider,custom-membershipprovider,Asp.net Mvc 4,Cookies,Forms Authentication,Membership Provider,Custom Membershipprovider,好的,我已经实现了一个定制的ExtendedMembershipProvider,用于MVC4应用程序,所有这些都连接好了,工作正常,但是表单身份验证cookie出现了问题 我正在创建自己的cookie,当直接调用我的登录过程时这很好,但是如果我使用WebSecurity.login函数,我自己似乎无法控制cookie 这就引出了我的问题WebSecurity.Login需要三个参数(其中一个是可选的): 现在,此函数调用ExtendedMembershipProvider上的ValidateU

好的,我已经实现了一个定制的ExtendedMembershipProvider,用于MVC4应用程序,所有这些都连接好了,工作正常,但是表单身份验证cookie出现了问题

我正在创建自己的cookie,当直接调用我的登录过程时这很好,但是如果我使用WebSecurity.login函数,我自己似乎无法控制cookie

这就引出了我的问题WebSecurity.Login需要三个参数(其中一个是可选的):

现在,此函数调用ExtendedMembershipProvider上的ValidateUser函数,该函数只接受两个参数:

public abstract bool ValidateUser(
    string username,
    string password
)
persistCookie参数在哪里?WebSecurity.Login是否处理cookie生成本身?如果是,如何覆盖它


非常感谢各位的帮助

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;
}
如果要更改行为,请按照以下指南更改此代码段

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;
}