我已经在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回答中所述。我做错了什么?
答案 0 :(得分:1)
mvc管道不涉及静态内容(html)。
将此行添加到项目web.config文件中的system.webServer serction。
<modules runAllManagedModulesForAllRequests="true">