Где можно расширить текущую (5.0) функциональность удостоверения ASP.NET, чтобы упростить разрешение целочисленного идентификатора пользователя и прав безопасности, связанных с утверждением? Это должно быть доступно во всех точках доступа к службе браузера моего веб-приложения (везде, где предоставляется файл cookie или JWT), включая концентратор SignalR, контроллер MVC и контроллер WebAPI. Он должен работать с аутентификацией OWIN.
Извиняюсь, если я пропустил ответ уже здесь. Я знаю, что есть много сообщений об этом, но я не вижу ни одного, который в настоящее время отвечает на вопрос. Вот три наиболее связанных решения, которые я видел, и почему они не работают:
Установите HttpContext.Current.User
при каждом вызове через global.asax Application_PostAuthenticateRequest
. Я видел более старые (MVC 4) функции, которые устаревают. Я знаю, что global.asax, как правило, сегодня не подходит. Я также использую OWIN; это может даже не работать вообще.
Переопределите ClaimsPrincipal ClaimsAuthenticationManager.Authenticate()
с конфигурацией <system.identityModel><identityConfiguration><claimsAuthenticationManager type = "CustomClaimsAuthenticatonManager" />
Однако ClaimsAuthenticationManager
взято из System.Identity
, которого нет даже в ссылках на мой проект ASP.NET 5.0 с активным ClaimsAuthentication
. Вместо этого у меня есть ссылки на Microsoft.AspNet.Identity.Core
в моем проекте из текущих пакетов NuGet. Кажется, этот подход не для приложений ASP.NET или, по крайней мере, не текущих?
Установите UserManager.ClaimsIdentityFactory
на пользовательское ClaimsIdentityFactory
с переопределенным CreateAsync
. Похоже, это может сработать, но я не вижу способа привить это к текущему поведению ASP.NET по умолчанию. См. здесь: Как установить пользовательский ClaimsPrincipal в MVC 5? < /а>