Как узнать, является ли текущий путь безопасным или нет, в ASP.NET - PullRequest
4 голосов
/ 06 сентября 2011

Предположим, что запрос отправляется по этому пути:

http://domain/users/1534

Этот URL-адрес находится в публичной безопасности, поэтому каждый может увидеть его без проверки подлинности на сайте (без входа в систему).

Теперь рассмотрим, что другой URL-адрес должен быть безопасным:

http://domain/admin/update-user

Этот URL-адрес должен пройти процесс аутентификации.

Теперь, где-то в моем коде мне нужно знать, является ли текущий путьэто безопасный путь или нет (пожалуйста, не спрашивайте почему, а также под безопасным путем я не имею в виду SSL, я просто говорю о путях, для которых требуется вход в систему).

Как узнатьчто HttpContext.Request.Url.AbsolutePath является безопасным путем?

Обновление: Мне нужно что-то вроде:

SecurityHelper.ShouldCurrentRequestPathBeAuthenticated(Request.Url.AbsolutePath)

1 Ответ

3 голосов
/ 06 сентября 2011

Зависит от того, как вы реализуете процесс авторизации. Где-то вам нужно будет определить его, так что вы узнаете, является ли это безопасным путем.

Стандартный ASP.NET будет использовать настройки местоположения / безопасности в этом случае.

Если вы используете стандарт authentication/authorization, то я считаю, что вы можете использовать CheckUrlAccessForPrincipal .

UrlAuthorizationModule.CheckUrlAccessForPrincipal(virtualPath, user, verb);
...