Custom ClaimsPrincipal или ClaimsIdentity (куда привить?)

Где можно расширить текущую (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? < /а>


person shannon    schedule 23.11.2015    source источник
comment
Вы хотите использовать свои собственные таблицы или автоматически сгенерированные таблицы Identity?   -  person Win    schedule 23.11.2015
comment
Я бы предпочел использовать свои собственные таблицы. Прямо сейчас я не использую ни то, ни другое технически, поскольку ни процессы проверки подлинности, ни авторизации не затрагивают Identity UserStore. Информация об учетной записи, конечно же, хранится в моей базе данных.   -  person shannon    schedule 23.11.2015
comment
Я пытаюсь получить имя группы, к которой принадлежит SID группы. Я использую проверку подлинности Windows, чтобы привлечь пользователя. Как я могу преобразовать GroupSID в название групп, к которым принадлежит пользователь?   -  person Michael JDI    schedule 22.01.2016
comment
Любые обновления этого? У меня есть настройки для сервисов, но я изо всех сил пытаюсь понять, где на контроллере можно получить доступ к пользовательскому пользователю. В идеале я хочу, чтобы что-то вроде IUserContext передавалось от контроллеров. Я мог бы добавить утверждения, к которым можно было бы получить доступ из единственного элемента IUserContext, который можно было бы внедрить в контроллер.   -  person Andez    schedule 09.12.2016