Добавление претензий при входе - PullRequest
0 голосов
/ 08 марта 2019

дней. Я борюсь с новой аутентификацией в .NET Core 2.2. Вот что у меня есть:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddAuthentication(options => options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(options =>
            {
                options.LoginPath = $"/api{CookieAuthenticationDefaults.LoginPath}";
                options.LogoutPath = $"/api{CookieAuthenticationDefaults.LogoutPath}";
                options.EventsType = typeof(MyEvents);
            });
        services.AddScoped<MyEvents>();
    }

    public class MyEvents : CookieAuthenticationEvents
    {
        public async override Task SignedIn(CookieSignedInContext context)
        {
            // do some checks
            // add cookie to CookieManager >> WORKS WELL
            // add claims to Principal >> NOT WORKING

            if (error) 
            { await context.HttpContext.SignOutAsync(scheme); context.Principal = null ; }
         }

        public async override Task ValidatePrincipal(CookieValidatePrincipalContext context)
        {
            // idea here is to check if claims are already set, if not add them
            if (context.Principal.HasClaim(c => c.Type == ClaimTypes.NameIdentifier))
                return;

            // time consuming claims search
            // add claims here : WORKS but only for this instance
         }

Проблема

Добавление заявок в SignedIn делает абсолютноНичего, при возвращении в вызывающий метод утверждения не устанавливаются.

Добавление утверждений в ValidatePrincipal работает только для текущей проверки [Authorize].Каждый раз, когда я вхожу в этот метод, заявки больше не устанавливаются.

Я бы хотел избежать трудоемкого процесса поиска заявок.Есть ли более безопасный способ добавить их один раз для сеанса?

Приветствия,

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