ASP.NET Identity 2.1 Alpha SigniNManager.getverifiedUseridasync Неверный актерский

StackOverflow https://stackoverflow.com//questions/25033418

Вопрос

Я использую 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();
    }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top