Аутентификация формы и пользовательская ошибка
У меня есть приложение, которое использует проверку подлинности формы. Он имеет тег deny в корневом веб-файле конфигурации.
<authorization>
<deny users="?" />
</authorization>
Структура файла приложения имеет папку CSS и JS. Теперь, когда я пытаюсь получить доступ к CSS и папке JS (https://domainname/CSS
) он перенаправляет меня на страницу входа. Это обеспечит наличие каталога на сайте. Я хочу показать пользовательскую страницу ошибки в этом случае.
Кроме того, когда я пытаюсь получить доступ https://domainname/bin
URL перенаправляет меня на HTTP 404 Ошибка.
Как отобразить одну и ту же страницу ошибки в обоих случаях?
2 ответа
Если вы использовали проверку подлинности формы, любой неавторизованный запрос будет перенаправлен на страницу, указанную в loginUrl
проверки подлинности формы
<forms loginUrl="~/Account/Login.aspx" timeout="2880" />
Но для страниц ошибок, таких как 404 или 500 или любых других, вы можете настроить страницы так, чтобы они отображались при возникновении ошибки. Добавьте это в web.config для настройки страниц ошибок
<customErrors defaultRedirect="Error.aspx">
<error statusCode="404" redirect="404.aspx"/>
<error statusCode="500" redirect="500.aspx"/>
</customErrors>
Вы можете поймать несанкционированный запрос в одном из событий приложения в Global.asax.cs.
protected void Application_AuthenticateRequest(Object sender,
EventArgs e)
{
string url = HttpContext.Current.Request.Url.AbsoluteUri;
if (!Request.IsAuthenticated || url.Contains("Check Your URL Here"))
Response.Redirect("AccessDenied.aspx");
}