результат авторизации на основе политик с требованиями по сбою - PullRequest
0 голосов
/ 04 января 2019

Мы используем авторизацию на основе политик с такими требованиями:

[Authorize(Policy = "IsUser")]

Когда авторизация не проходит, мы просто получаем белую страницу со статусом 200. Как мы можем контролировать то, что происходит, если авторизация не проходит в ядре ASP.NET. Мы хотели бы что-то вроде запрещено.

1 Ответ

0 голосов
/ 04 января 2019

Обратите внимание, что для работы авторизации в ядре asp.net ваш механизм аутентификации должен быть настроен правильно. Документация Microsoft : «для авторизации требуется механизм аутентификации».

Неясно, используете ли вы свой собственный код для аутентификации или используете базовую службу asp.net (аутентификация с использованием cookie / идентификация / и т. Д.). Несколько схем и соответствующий код можно найти здесь .

Чтобы ответить на ваш вопрос, вам необходимо настроить параметры аутентификации - например, «LoginPath». Этот путь будет соответствовать «странице», которая будет использоваться для перенаправления при сбое авторизации.

Ниже приведен один пример (при использовании аутентификации на основе файлов cookie):

services.AddAuthentication(options =>
            {
                options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
            }).AddCookie(o => {
                o.LoginPath = "/Account/Login";
            });

В приведенном выше примере (код добавлен в метод «ConfigureServices») добавлена ​​аутентификация на основе файлов cookie. Установлены схемы проверки подлинности по умолчанию и схемы «Вызова» по умолчанию. Кроме того, опция «LoginPath» устанавливается для опции аутентификации Cookie.

Надеюсь, это поможет.

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