Как правильно реализовать серверный блейзор на стороне провайдера авторизации - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь реализовать базовый c пользовательский поставщик проверки подлинности в моем проекте бразора на стороне сервера, но у меня возникают некоторые трудности с правильной реализацией свойства IsAuthenticating.

Я использовал этот сайт в качестве начальной точки, но он выдает ошибку, если для 'IsAuthenticating' установлено значение true (более конкретно, когда я возвращаю ноль из GetAuthenticationStateAsync()). https://gunnarpeipman.com/client-side-blazor-authorizeview/.

В частности, эта строка кода:

if(IsAuthenticating)
    {
        return null; <---- This line throws error
    }
    else if(IsAuthenticated)
    {
        identity = new ClaimsIdentity(new List<Claim>
                    {
                        new Claim(ClaimTypes.Name, "TestUser")

                    }, "WebApiAuth");
    }
    else
    {
        identity = new ClaimsIdentity();
    }

Точная ошибка:

NullReferenceException: Object reference not set to an instance of an object.
   Microsoft.AspNetCore.Components.Authorization.AuthorizeViewCore.OnParametersSetAsync()

Я не хотел загромождать трассировку стека.

Может ли это быть достигнуто, и если да, то как?

...