Как добавить cookieScheme на основе cookie в ASP.NET Core? - PullRequest
0 голосов
/ 22 декабря 2018

Я хотел бы использовать атрибут [Authorize] в моих классах контроллеров, чтобы перенаправлять пользователей, которые не вошли в систему, на мою страницу входа.Для аутентификации я хотел бы сохранить простоту и просто использовать переменную сеанса, чтобы отслеживать, вошел ли кто-то в систему или нет.

Я попытался добавить аутентификацию в мой класс запуска:

services.AddAuthentication()
            .AddCookie(options =>
            {
                options.AccessDeniedPath = new PathString("/Account/SignIn");
                options.LoginPath = new PathString("/Account/SignIn");
                options.LogoutPath = new PathString("/Home/SignOut");
            });

но я получаю сообщение об ошибке при переходе к контроллеру с атрибутом [Authorize]:

InvalidOperationException: не указана схема authenticationScheme, и не найден DefaultChallengeScheme.

Я знаю, что что-то упустил, просто не знаю, как настроить схему аутентификации или использовать по умолчанию.

1 Ответ

0 голосов
/ 22 декабря 2018

Вам необходимо установить схему аутентификации по умолчанию.

Как сказано в документах

AuthenticationScheme, переданный в AddAuthentication, устанавливает схему аутентификации по умолчанию для приложения.

В вашем случае

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(options =>
            {
                options.AccessDeniedPath = new PathString("/Account/SignIn");
                options.LoginPath = new PathString("/Account/SignIn");
                options.LogoutPath = new PathString("/Home/SignOut");
            });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...