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) 
) 

Теперь эта функция вызывает функцию ValidateUser на ExtendedMembershipProvider, которая только принимает два параметра:

Где находится параметр persistCookie? Does 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.