Входная строка была не в правильном формате - используется неверный контекст - PullRequest
2 голосов
/ 11 октября 2019

После изменения ASP.NET Core Identity для использования int вместо GUID (согласно этой записи блога) Я получаю следующую ошибку:

ArgumentException: 395438ed-1cd9-4420-8a58-3f3b1f550bfc не является допустимым значением для Int32. Имя параметра: значение System.ComponentModel.BaseNumberConverter.ConvertFrom (контекст ITypeDescriptorContext, культура CultureInfo, значение объекта). Microsoft.AspNetCore.Identity.UserStoreBase.ConvertIdFromString (идентификатор строки)cancellationToken) Microsoft.AspNetCore.Identity.UserManager.FindByIdAsync (строка userId) Microsoft.AspNetCore.Identity.UserManager.GetUserAsync (принципал утверждения)(Контекст CookieValidatePrincipalContext) Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationHandler.HandleAuthenticateAsync ()AspNetCore.Authentication.AuthenticationMiddleware.Invoke (контекст HttpContext) Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke (контекст HttpContext) Microsoft.AspNetCore.Diagnostics. база данных. Любые подсказки относительно того, почему это может быть?

1 Ответ

2 голосов
/ 11 октября 2019

Согласно одному из комментариев в сообщении в блоге:

Спасибо, эта статья была действительно полезной. Одна ошибка для меня заключалась в том, что после замены на использование int при первой загрузке сервера идентификации я получил ошибку в этой строке

Microsoft.AspNetCore.Identity.UserStoreBase.ConvertIdFromString (идентификатор строки).

Оказывается, у меня был файл cookie, использующий старый формат guid. Простое исправление - очистить файлы cookie.

Проблема в том, что некоторые из ваших предыдущих входов в систему, вероятно, были сделаны, когда идентификатор представлял собой GUID. Вы изменили его на int, и теперь он больше не знает, как обрабатывать GUID. Простейшим решением будет удалить ваши куки, эффективно выйдя из системы и заставив вас войти снова (вместо этого используйте int).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...