2015-08-13 2 views
1

Я новичок в stackoverflow, поэтому, пожалуйста, несите меня. Я не нашел прямого ответа на мой вопрос.IIS Authorization MVC Controller полный URL

Я использую веб-приложение MVC, разработанное третьей стороной. Существует определенный контроллер, для которого я хотел бы обеспечить просмотр одного элемента для определенных пользователей. Так, например, URL, пользователь может ударить в: .../#/MyViews/1

Вообще это хорошо для всех (Windows) проверку подлинности пользователей, чтобы видеть все элементы MyViews. Тем не менее, может быть несколько, что я хотел бы только один или два пользователя/группы, чтобы иметь возможность просматривать. Третья сторона может поддержать эту функциональность в будущем, но сейчас они не работают. Я надеялся, что авторизация IIS поможет мне, изменив файл web.config, но я не могу заставить его работать.

Я думал, что я мог бы быть в состоянии сделать что-то вроде:

<location path="#/MyViews/234"> 
    <allow users="domain\username" /> 
</location> 

, но это не похоже на работу. Может быть, я не могу этого сделать, но мне не терпится ждать, пока третья сторона предоставит вам функциональность.

Неужели я не понимаю возможности функциональности «местоположения»?

Любые другие возможные варианты решения этой проблемы?

+0

Вы можете использовать пользовательский атрибут Authorize для действий, к которым вы хотите получить доступ. Что-то вроде этого: http://stackoverflow.com/a/10069844/1081079 – freshbm

+0

Спасибо за комментарий, однако у меня нет исходного кода для изменения/расширения, это стороннее приложение. – ehjkrulz

ответ

0

Настройки web.configlocation предназначены исключительно для аутентификации на основе файлов. Значения, которые вы там помещаете, соответствуют физическим каталогам и файлам на веб-сервере, а не URL-адресам.

MVC не обслуживает файлы, он программно использует ресурсы из методов действий контроллера. Поэтому веб-сервер (через web.config) не имеет возможности переопределить его безопасность. AuthorizeAttribute является единственным надежным способом защиты приложения MVC, поскольку он включает блокировку ресурса (действия контроллера), а не защиту по URL-адресу, что может быть неудачно, если есть альтернативный маршрут, который может обращаться к одному и тому же действию контроллера.

Единственный вариант, который у вас есть, если у вас нет исходного кода и у вас нет возможности подключить свой собственный код, - это надеяться, что сторонняя сторона внесла некоторый вариант в программное обеспечение для настройки безопасности на уровень, который вы необходимость, которая, вероятно, связана с подклассом AuthorizeAttribute, который имеет некоторые параметры, которые можно настроить в файле конфигурации или через панель управления.

+0

Спасибо. Это то, что я начал подозревать во время моего тестирования. Думаю, я все еще надеялся, что есть способ сделать это, прежде чем URL будет передан в приложение. Я могу технически модифицировать модели просмотра и вставить некоторый javascript для выполнения проверки авторизации URL-адреса, что, скорее всего, попробую сделать дальше. – ehjkrulz