Аутентификация формы и пользовательская ошибка

У меня есть приложение, которое использует проверку подлинности формы. Он имеет тег 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"); 
}
Другие вопросы по тегам