Я пытаюсь расширить IPrincipal
в .NET Core с аутентификацией Windows.
В предыдущем проекте (с использованием .NET Framework 4.6.1) на Application_Start()
Я добавил приведенный ниже код для расширенияIPrincipal
:
protected void WindowsAuthentication_OnAuthenticate(object sender, WindowsAuthenticationEventArgs e)
{
if (e.Identity != null && e.Identity.IsAuthenticated)
{
NgUser opPrincipal = CustomStaticMethod.GetUserAD();
HttpContext.Current.User = opPrincipal;
}
}
И это мой пользовательский класс
public class NgUser : IPrincipal
{
// code removed for abbr ...
}
Затем каждый раз, когда в контроллере происходит преобразование HttpContext.Current.User
в CustomPrincipal
, у меня будет доступ к пользовательскому классу.свойства без необходимости использования утверждений или использования статических расширений или сохранения объекта в сеансе.
Теперь в .NET Core я видел, что вы можете настроить преобразование утверждений , и я также прочитал this и они в основном расширены IPrincipal
.
Я бы предпочел расширить IPrincipal
с помощью моего пользовательского класса, зарегистрировать его в Startup.cs
и иметь возможность доступа к нему в моих контроллерах.
Конечно, это выполнимо, вопрос в том, как?
Надеюсь, это понятно, и кто-то может мне помочь.Большое спасибо