IIS授权MVC控制器完整URL

时间:2015-08-13 11:17:02

标签: asp.net asp.net-mvc iis

我是stackoverflow的新手,所以请耐心等待。我还没有找到我问题的直接答案。

我正在使用由第三方开发的MVC Web应用程序。有一个特定的控制器,我想确保向某些用户查看一个项目。 因此,例如,用户可能会遇到的URL是: ... /#/ MyViews / 1

通常,所有(Windows)身份验证用户都可以查看所有MyViews项目。但是,可能有一些我只希望一个或两个用户/组能够查看。第三方可能会在未来支持该功能,但他们现在还没有。 我希望IIS授权可以通过改变web.config来帮助我,但我无法让它工作。

我以为我可以做类似的事情:

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

但它似乎不起作用。可能只是我无法做到,但我讨厌等待第三方提供功能。

我是否误解了&#34;位置&#34;功能?

要解决此问题的其他任何可能选项吗?

1 个答案:

答案 0 :(得分:0)

web.config location设置专门用于基于文件的身份验证。您放在那里的值对应于Web服务器上的物理目录和文件,而不是URL。

MVC不提供文件,它以编程方式从控制器操作方法提供资源。因此,Web服务器(通过web.config)无法覆盖其安全性。 AuthorizeAttribute是保护MVC应用程序的唯一可靠方法,因为它涉及锁定资源(控制器操作)而不是通过URL保护,如果存在可以访问相同控制器操作的备用路由,则会失败。

如果您没有源代码并且无法插入自己的代码,那么唯一的选择是希望第三方在软件中添加一些选项以将安全性配置为您需要的级别,这可能涉及一个自定义AuthorizeAttribute子类,它具有一些可以在配置文件中或通过控制面板配置的设置。