2015-03-26 3 views
0

Я видел похожие сообщений на это, но никто не дал мне ответа, я действительно могу работать.Поставщик членства MVC5 GetUserId()

Я изменил файл AuthConfig.cs, чтобы разрешить регистрацию OAuth.

Я определенно зарегистрирован и авторизован, но все еще не могу получить UserId.

public ActionResult Index() 
    { 
     var isAuthenticated = User.Identity.IsAuthenticated; // returns true 
     var userName = User.Identity.GetUserName(); // returns rory 
     var userId = User.Identity.GetUserId(); // returns null 

     return View(); 
    } 

Почему это продолжает возвращать null? Я использовал это в других проектах много раз раньше и никогда не имел проблемы. Мысли?

+0

Вы изменили тип ключа по умолчанию IdentityUser? – tmg

+0

Нет, но я смотрел на AccountModel и заметил, что они вернули Id другим способом, и я получил его на работу. Я немного смущен, чтобы сказать меньше всего ... 'WebSecurity.GetUserId (User.Identity.Name);' – ragerory

ответ

0

Использование приведенного ниже способа получения идентификатора работает, пока в вопросе нет. Я не видел этого раньше, и не видел его ни в одном из других ответов.

WebSecurity.GetUserId(User.Identity.Name); 

Успешно возвращает UserId, независимо от того, является ли он OAuth или локальной учетной записью.

0
var store = new UserStore<ApplicationUser>(new ApplicationDbContext()); 
var userManager = new UserManager<ApplicationUser>(store); 
ApplicationUser user = userManager.FindByNameAsync(User.Identity.Name).Result; 
Смежные вопросы