2013-09-09 2 views
0

У меня проблема с моим поставщиком пользовательского членства, который расширяет ExtendedMembershipProvider.WebSecurity.Login не работает

После запуска WebSecurity.Login, который успешно выполняет мой метод Validated Validate, User.Identity.IsAuthenticated не установлен.

Но проверка подлинности WebSecurity.IsAuthenticated, это правда. Кроме того, CurrentUserName устанавливается witrh, мое имя пользователя. но CurrentUserId говорит: «Исправлено исключение».

Если я проверить исключение и, после проверки коды, я обнаружил, что GetUser (строка имя пользователя, BOOL isUserOnline) метод моего провайдера, является receveing ​​имени пользователя из параметров, как нуль ...

+0

Я только что узнал, что IsAuthenticated и CurrentUser устанавливается только после вызова Вход для второй раз. –

ответ

0

я просто обнаружил мою проблему. В моем приложении «Действие моего контроллера» я возвращал представление. Как я понял, мне пришлось перенаправить приложение, потому что пользователь настроен после выполнения запроса.

Это то, что я имел:

public ActionResult Index(LoginModel model) 
{ 
    if (ModelState.IsValid) 
    { 
     WebSecurity.Login(model.Email, model.Password, model.RememberMe) 
    } 

    return View(model); 
} 

Это то, что у меня есть сейчас, и работает:

public ActionResult Index(LoginModel model) 
{ 
    if (ModelState.IsValid && WebSecurity.Login(model.Email, model.Password, model.RememberMe)) 
    { 
     return RedirectToAction("Index", "Home"); 
    } 

    return View(model); 
}