Членство в ASP.NET я могу получить каталог для возврата 403? - PullRequest
0 голосов
/ 06 сентября 2010

У меня есть существующее приложение, над которым я выполняю некоторые аутентификационные работы (исправление некоторых давних проблем), и я вполне доволен перенаправлением входа в систему при нормальных обстоятельствах. Для IIS7 я реализую HttpModule авторизации, который я использую на всем конвейере IIS7.

Это прекрасно работает, но я бы хотел, чтобы некоторые подкаталоги (фактически виртуальные каталоги) основного сайта возвращали 403 вместо перенаправления. Возможно ли это сделать без использования собственного модуля аутентификации?

Я видел работу Sky Sanders (поэт кода), но я бы хотел этого избежать, если смогу.

http://www.codeproject.com/Articles/39062/Salient-Web-Security-AccessControlModule.aspx

Такое ощущение, что что-то умное с секцией <location=""> должно работать, но я не могу понять, как это сделать (или, если это вообще возможно).

Ответы [ 3 ]

0 голосов
/ 06 сентября 2010

Посмотрите здесь , где я на самом деле пытаюсь предотвратить ошибку 403. Сделав второй взгляд, я не уверен, как вы можете использовать его в вашей ситуации, но это может пролить светдругой способ манипулирования ответами сервера.

0 голосов
/ 06 сентября 2010

Попробуйте:

<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
            <error statusCode="403" redirect="NoAccess.htm"/>
            <error statusCode="404" redirect="FileNotFound.htm"/>
</customErrors>

(Источник: MSDN )

Если это не поможет, также добавьте это в свой Global.asax:

void Application_EndRequest(object sender, EventArgs e)
{
    // if login failed then display user friendly error page.
    if (Response.StatusCode == 403)
    {
        Response.ClearContent();
        Server.Transfer("~/Common/Errors/AccessDenied.html");
    }
}

Надеюсь, что это работает.

0 голосов
/ 06 сентября 2010

Попробуйте создать отдельный файл web.config для подкаталогов и запретить доступ к ним (подкаталогу) с помощью глагола deny в подкаталоге web.config. Что-то вроде deny = "?" (? это глагол, который идентифицирует аутентифицированных пользователей). Если вы хотите 403 для всех, попробуйте * вместо?. Я думаю, что это должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...