ASP.NET Identity 2.1 Alpha SigniNManager.getverifiedUseridasync Неверный актерский
-
21-12-2019 - |
Вопрос
Я использую ASP.NET MVC 5 с ASP.NET Identity 2.1 Alpha в моем проекте.
Для идентичности Я реализовал User Manager для использования GUID в качестве ключа.
Я реализую двух факторную аутентификацию.Когда я пытаюсь получить идентификатор пользователя
var userId = await SignInManager.GetVerifiedUserIdAsync();
.
Я получаю ошибку
Invalid cast from 'System.String' to 'System.Guid'.
.
Это ошибка с идентичности Alpha Release или я что-то упускаю?Если я использую один фактор аутентификации, все хорошо.Пользователи создаются в базе данных, вы можете изменить пользовательские данные и т. Д.
Любое предложение будет оценено.Спасибо.
Решение
Я нашел решение.Глядя в определение SignInmanager, я заметил два метода
public virtual TKey ConvertIdFromString(string id);
public virtual string ConvertIdToString(TKey id);
.
Так что я просто переопределил эти два метода в мою реализацию SigninManager, и все работало.
public override Guid ConvertIdFromString(string id)
{
if (string.IsNullOrEmpty(id)) return Guid.Empty;
return new Guid(id);
}
public override string ConvertIdToString(Guid id)
{
if (id.Equals(Guid.Empty)) return string.Empty;
return id.ToString();
}
. Не связан с StackOverflow