Rohit Singh Ответов: 1

Как создать пользовательскую страницу ошибок для 401 в MVC


Привет. Я так долго сталкивался с этой проблемой и перепробовал почти все, но не смог получить то, что хотел.

Я хочу отобразить пользовательскую страницу ошибок для кода 401, если пользователь не имеет права просматривать какую-либо конкретную часть моего веб-приложения. Пожалуйста, решите мою проблему.

Что я уже пробовал:

Это мой файл web. config:

<customErrors mode= " On " >
<error statusCode= " 404 "redirect=" ~ / Error/NotFound"/>
< error statusCode= " 401 "redirect=" ~ / Home/SecureMethod"/>



Это мой контроллер:

[Handleerror с]
публичный класс HomeController : Controller
{

[Авторизовать]
public ActionResult SecureMethod()
{


возвращение смотреть();
}

[Атрибута allowanonymous]
public ActionResult NonSecureMethod()
{
возвращение смотреть();
}

Я также включил аутентификацию Windows и анонимную аутентификацию на сервере IIS

Namith Krishnan E

используете ли вы аутентификацию windows в своем приложении или просто включили ее в iis для тестирования?

Rohit Singh

Я использую аутентификацию Windows

Richard Deeming

Ваша ошибка "не аутентифицирована" указывает на действие, требующее аутентификации. Вы хотели указать на него NonSecureMethod вместо этого?

NB: 401 это означает, что пользователь еще не прошел проверку подлинности. Если вы пытаетесь справиться с тем случаем, когда пользователь имеет аутентифицирован, но не имеет разрешения, вам нужно 403.
Список кодов состояния HTTP[^]

Richard Deeming

Репост
Вы уже опубликовали этот вопрос:
https://www.codeproject.com/Questions/1201147/I-want-to-capture-the-error-code-and-send-the-user[^]

1 Ответов

Рейтинг:
0

Kornfeld Eliyahu Peter

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


Rohit Singh

Хии, Корнфельд Элияху Питер я тоже пробовал это сделать, но это не сработало