对文件夹的表单身份验证不起作

时间:2016-07-13 07:38:09

标签: asp.net web-config forms-authentication

我已经在ASP.NET中处理了一个Web项目。它包含Content文件夹,其中包含index.html文件。目前,人们可以前往mysite.com/content/index.html。这个项目中没有MVC控制器(我自己也没有)。

我不希望人们直接进入HTML页面。我在我的网站的根目录上有一个登录页面(所以mysite.com),所以如果他们没有登录,我想在那里重定向用户。我用Index方法创建了自己的HomeController。我已经设置了ASP.NET Identity来授权对该方法的所有请求。我想设置表单身份验证,将所有未经授权的请求重定向到Content文件夹,将其内容重定向到/ Home / Index(或简称为网站根目录/)。

我在这个网站和其他地方找到了几个非常相似的答案: 在网站根目录的Web.config中,我有以下代码:

<configuration>
      <location path="~/Content">
        <system.web>
            <authorization>
                <deny users="?" />
            </authorization>
        </system.web>
      </location>

    <!-- some other nodes -->

    <system.web>
        <authentication mode="Forms">
            <forms name=".ASPXAUTH" loginUrl="/" />
        </authentication>
    </system.web>
</configuration>

但这不起作用,如果我转到mysite.com/content/index.html我没有被重定向到mysite.com。我还尝试在不同的web.config文件中拆分它们,如this回答中所述。我做错了什么?

1 个答案:

答案 0 :(得分:1)

mvc管道不涉及静态内容(html)。

将此行添加到项目web.config文件中的system.webServer serction。

<modules runAllManagedModulesForAllRequests="true">