Как сделать маршрут доступным только после входа в asp.net core 2.1? - PullRequest
0 голосов
/ 21 ноября 2018

Я не уверен, как спросить это, но здесь это идет.Я пытаюсь сделать маршрут или URL из контроллера доступным только после входа в систему пользователя.Я не знаю, чтобы найти этот код в ядре asp.net 2.1.Я знаю, как это сделать для своей части зрения.

@if (SignInManager.IsSignedIn(User)){ //authorized section }

Но я не уверен насчет частей контроллера / маршрута.Итак, мне нужна ваша помощь, чтобы выучить это правильно.

Спасибо.

1 Ответ

0 голосов
/ 21 ноября 2018

Я не совсем уверен, что вы спрашиваете.Если ваш вопрос заключается в том, как вы можете сделать так, чтобы маршрут вообще не существовал, это невозможно.Если это выставлено, это выставлено.Однако вы можете заставить пользователя авторизоваться для доступа к нему, что приводит меня к следующей возможной интерпретации: как заставить пользователя авторизоваться для доступа к определенному маршруту.Это просто;вы просто декорируете действие атрибутом Authorize:

[Authorize]
public IActionResult OnlyForAuthenticateUsers()

Вместо этого вы также можете декорировать класс контроллера, который защитит каждое действие в контроллере:

[Authorize]
public class MyController

Есливам просто нужно одно или около того действия, которые будут открыты, например, «вход» в контроллере, который в противном случае имеет действия, доступные только для аутентифицированных пользователей, тогда вы можете использовать атрибут AllowAnonymous:

[AllowAnonymous]
public IActionResult SignIn()

Наконец, атрибут Authorize также позволяет указать роли и / или политики, которые должны быть выполнены в дополнение к аутентификации.Например, чтобы заблокировать определенное действие только для пользователей с правами администратора, вы можете сделать что-то вроде [Authorize(Roles = "Admin")].

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