Пользовательский IPrincipal вместе с WindowsAuthentication

Нет пути. Для создания .ipa у вас должен быть Mac и Xcode (кроме expo)

5
задан PHeiberg 13 March 2009 в 07:52
поделиться

2 ответа

Возможно, Вы могли создать свой "ExtendedWindowsPrincipal" как производный класс на основе WindowsPrincipal и просто добавить Ваши дополнительные данные к производному классу?

Тем путем Ваш ExtendedWindowsPrincipal был бы все еще распознан где угодно, где WindowsPricinpal необходим.

ИЛИ: так как Вы говорите об использовании аутентификации Windows, Вы находитесь, вероятно, в сети Windows - там Active Directory или пользовательская база данных где-нибудь, где Вы могли искать свой адрес электронной почты, что Вы интересуетесь вместо того, чтобы хранить его в принципале?

Marc

3
ответ дан 14 December 2019 в 13:47
поделиться

Я закончил тем, что осуществил рефакторинг свое начальное решение в замену Принципала вместо Идентификационных данных, как я первоначально думал. Замена Идентификационных данных оказалась неприятной, так как я столкнулся с проблемами безопасности при создании экземпляра нового расширенного WindowsPrincipal.

public class ExtendedWindowsPrincipal : WindowsPrincipal
{
    private readonly string _email;

    public ExtendedWindowsPrincipal(WindowsIdentity ntIdentity, 
       string email) : base(ntIdentity)
    {
            _email = email;
    }

    public string Email
    {
        get { return _email; }
    }
}

В моем Модуле аутентификации я заменил принципал на HttpContext как это:

var currentUser = (WindowsIdentity)HttpContext.Current.User.Identity;
HttpContext.Current.User = 
    new ExtendedWindowsPrincipal(currentUser, userEmail);
3
ответ дан 14 December 2019 в 13:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: