Можете ли вы предоставить доступ к контроллерам/представлениям для пользователей, не прошедших проверку подлинности

102
9

У меня есть приложение MVC 3, которое использует аутентификацию asp.net. Я только что создал пользовательский контроллер ошибок и пару просмотров для неизвестных ошибок и 404. Это нормально работает, когда я вошел в приложение, но если во время входа в систему произошла ошибка внутреннего сервера, я хотел бы отобразить представление ошибки/неизвестности. Однако я просто переадресовываюсь обратно в логин, так как я не аутентифицирован.


Я добавил путь местоположения для 'Views/Error к моему Web.config, чтобы разрешить доступ ко всем пользователям, но я предполагаю, что его доступ к контроллеру вызывает перенаправление.


Есть ли способ разрешить это в MVC или мне нужно подумать о другом решении? Просто не хотел добавлять общее сообщение на страницу входа в систему, так как это то, о чем мое неизвестное представление ошибок.

спросил(а) 2021-01-19T16:08:16+03:00 9 месяцев назад
1
Решение
65

Вы пытались добавить раздел местоположения в файл web.config?


URL-адрес должен быть URL-адресом ваших страниц ошибок. Внутри элемента местоположения укажите авторизацию, разрешающую пользователям = "*"


или, добавьте атрибут authorize в свой контроллер ошибок или действия с пользователями, установленными в "*".

Однако вы все-таки верны. Вам необходимо изменить, кто имеет право доступа к вашему контроллеру ошибок. атрибут authorize и элемент location позволяют это сделать.


Саймон

ответил(а) 2021-01-19T16:08:16+03:00 9 месяцев назад
46

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

ответил(а) 2021-01-19T16:08:16+03:00 9 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема