Создайте строгую типизированную оболочку вокруг основных требований Asp.Net - PullRequest
0 голосов
/ 23 июня 2019

Я искал упаковщик для претензий и ничего не нашел, поэтому я предполагаю, что это невозможно реализовать или просто так просто, что я что-то упускаю.

Я хочу попробовать реализовать что-то, что я могу использовать для доступа или добавления новых утверждений, но я не знаю, с чего начать.

Например ...

 HttpContext.User.Claims.FirstOrDefault(c => c.Type == "Referencia").Value

Где я могу написать класс, чтобы обернуть вокруг него утверждения и указать моему приложению использовать этот класс?

Я просто хотел бы сделать что-то вроде этого

_claimsWrapper.GetClaim();

1 Ответ

1 голос
/ 23 июня 2019

Смысл в том, чтобы иметь строго типизированные утверждения для пользовательских утверждений, которые я мог бы добавить при входе в систему, и написать меньше кода, как вы можете видеть по длинной строке в моем сообщении, плюс было бы неплохо видеть, какой тип возвращается, иногдая забыл, если это int или строка

Вы можете сделать класс расширения C #, например,

public static class ClaimsIdentitExtensions
{
    public static string GetReferencia(this ClaimsPrincipal user)
    {
        return user.Claims.FirstOrDefault(c => c.Type == "Referencia")?.Value;
    }

}

В вашем контроллере вы можете сделать:

User.GetReferencia();

В представлении вы можете использовать:

@User.GetReferencia()

Если вам нужна эта Модель, вы можете передать Пользователя модели (например, contructor)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...