Я не могу понять это, но у меня есть два MVC-проекта с записью Single Sign On, которые мне нужно было перезагрузить, а после семени переменная userStore возвращается с нулевым значением.MVC var userStore = новый UserStore <ApplicationUser> (db); return null
Это мой код (обратите внимание, что БД работает отлично и находит все мои таблицы, а также таблицу AspNetUsers):
private ApplicationDbContext db = new ApplicationDbContext();
и в методе Index (userManager строка бросает исключение, поскольку userStore имеет нулевое значение):
var userStore = new UserStore<ApplicationUser>(db);
var userManager = new UserManager<ApplicationUser>(userStore);
var userId = User.Identity.GetUserId();
var user = userManager.FindById(userId);
Я haven't изменил одну строку кода между рабочим раствором и последнего семени, но я добавил конфигурацию SSO между двумя последними семенами.
EDIT:
Пробовал перезагружать компьютер и проблема не устранена, но когда я пытаюсь войти с другим пользователем, он отлично работает. При попытке войти в систему с первым пользователем, снова я получаю другую ошибку:
The provided anti-forgery token was meant for a different claims-based user than the current user.
Так что я попытался в «InPrivate Окно», и я получаю исходную задачу с первым пользователем, но и любой другой пользователь получает анти-подделке ошибки вместо.
EDIT 2:
Пробовал снова запустить проект и оригинальная ошибку для первого пользователя, но следующий я пытаюсь войти с бросками анти-подделка ошибки.
После этого, пытаясь войти в систему с другим пользователем, первый пользователь также выбрасывает ошибку анти-подделки.
EDIT 3:
Это специфическое поведение, очевидно, связано с IE. В chrome и Firefox я получаю исходную ошибку, но я не могу реплицировать любые ошибки анти-подделки в любой комбинации порядка логинов или пользователей, но первый пользователь продолжает получать исходное исключение.
Так что, я думаю, это оригинальная ошибка, которая является проблемой для любого браузера.
EDIT 4:
Так как я знаю точную строку кода, которая вызывает проблему, я думаю, я могу с уверенностью предположить, связан каким-либо образом следующее .. Я могу установить точки останова на следующее:
не var userStore = new UserStore<ApplicationUser>(db);
var userManager = new UserManager<ApplicationUser>(userStore);
, но больше не может устанавливать точки останова на этой линии:
var userId = User.Identity.GetUserId();