У меня есть в моем файле web.config в каждом каталоге некоторые параметры доступа для каждой страницы в каталоге, например.Перенаправлять пользователя на пользовательский доступ запрещен страница
<location path="orderForm.aspx">
<system.web>
<authorization>
<allow roles="AdmStf" />
<allow roles="OrdPage" />
<deny users="*,?"/>
</authorization>
</system.web>
</location>
Это работает отлично. Но, когда пользователь не имеет правильного уровня доступа, пользователь автоматически перенаправляется на страницу Default.aspx в корневом каталоге.
Что бы я хотел сделать, на самом деле отправить пользователя на пользовательскую страницу AccessDenied.aspx.
в моем главном файле web.config У меня есть следующие ...
<customErrors mode="On" defaultRedirect="~/Views/Err/Error.aspx">
<error statusCode="401" redirect="~/Views/Err/AccessDenied.aspx" />
</customErrors>
Но это не работает, как я ожидал, что это. Пользователь по-прежнему перенаправляется на страницу Default.aspx.
Есть ли способ достичь того, что я хочу здесь?
Не перенаправляйте пользователей в условиях ошибки - вместо этого подавайте ответ об ошибке с заголовком ответа 401, иначе браузер или другие UA не признают, что ответ действительно является ошибкой. – Dai
как вы это делаете? – Stuart
все, что я читал в интернете, кажется, указывает на это, поэтому я не уверен, почему это не работает, обычно это обозначается как ответ на проблему ... – Stuart