2015-01-14 2 views
0

Вход для реселлеров я использую внешних поставщиков для лесозаготовительной, и мне нужно установить некоторые пользовательские данные сразу после того, как пользователь вошел в систему.5 GetUserId MVC является NULL после

Класс AccountController имеет метод ExternalLoginCallback, но после успешного входа в аккаунт, я не могу получить UserId. (Метод User.Identity.GetUserId() return NULL - Я где-то читал, что перенаправление необходимо после заполнения знака SignIn User.Identity).

Является ли здесь еще один способ зарегистрировать идентификатор пользователя сразу после signIn - без перенаправления?

+0

точный дубликат этого вопроса: http://stackoverflow.com/questions/27940804/get-current-user-after-signinstatus-success примерно в то же время – trailmax

ответ

0

Это старый пост, но я надеюсь, что это помогает кто-то, имеющий тот же вопрос ...

Мое приложение требуется перенаправление на другие страницы в зависимости от роли зарегистрированного пользователя, однако, идентичность не до тех пор, пока переадресация не завершится после входа/выхода из системы и перезагрузки контроллера.

Вот как я получил вокруг него:

  1. добавлен метод в базовый контроллер, который все мои контроллеры наследовать и управляемом редирект по ролям
  2. Добавлено анонимным действие в Home Controller
  3. Перенаправлено на это действие из действий входа и выхода из учетной записи контроллера.
  4. Вызывается метод, который я создал в # 1, и возвратил RedirectToActionResult из фиктивного действия.

Поскольку контроллер получил возможность перезагрузить, как объекты пользователя, так и объекты ролей правильно обновились, а перенаправление сработало.

Это вызывает незаметную вспышку, но все работает.

Надеюсь, это поможет.

Смежные вопросы