web.config中的文件夹和文件的配置

时间:2011-03-02 07:38:11

标签: asp.net-mvc web-config

我试图通过webconfig拒绝匿名用户访问文件和文件夹的应用程序文件夹“/”,并允许访问特殊的控制器路径(“共享”,“Verfolgung”)。

“共享”路径的配置有效但访问“Verfolgung”需要验证。

也许你告诉我什么不对?

此致 浮

web.config的一部分:

<authentication mode="Forms">
   <forms loginUrl="~/Account/LogOn" path="/" protection="All" timeout="2880" />
</authentication> 
<location path="Verfolgung">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>    
<location path="Shared">
    <system.web>
        <authorization>
            <allow users="*" />
        </authorization>
    </system.web>
</location>

2 个答案:

答案 0 :(得分:5)

在ASP.NET MVC中,您不应该使用web.config中的location元素。而Web表单引擎映射到磁盘上的物理文件,而MVC引擎使用路由。这意味着您可能会无意中允许通过自定义路径访问“受保护的控制器”。

保护ASP.NET MVC应用程序的推荐方法是使用Authorize属性,如下例所示:

public class HomeController : Controller
{
    [Authorize]
    public ActionResult Index()
    { 
        return View();
    }
}

控制器操作是您要保护的而不是路径。在ASP.NET MVC安全性方面,Levi Broderick对这个问题非常直言不讳:

  1. Excluding an action from authorization in ASP.NET MVC 2
  2. Problem with Authorization with IIS and MVC

答案 1 :(得分:1)

试试这个,

       <location path="Verfolgung">
           <system.web>
               <authorization>
                   <deny users="?"/>
                   <allow users="*" />
               </authorization>
          </system.web>
       </location>