我正在使用Asp.Net Identity。我需要允许管理员和拒绝用户访问我的管理文件夹中的所有页面,所以我在该文件夹中放置了一个web.config文件。
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="*" />
</authorization>
</system.web>
</configuration>
但是任何人仍然可以访问文件夹中的所有文件。我也尝试将其放入带有位置标记的主配置文件中,但没有结果。你有什么想法开始寻找问题吗?
更新:我在asp.net论坛上发现了一个问题,解释了很多: http://forums.asp.net/t/1955560.aspx?ASP+NET+Identity+Are+web+config+files+no+longer+acting+in+the+capacity+of+a+security+guard+for+our+ASP+NET+applications+files+and+folders+ 还有一件事需要提及。使用asp.net Identity创建新的Web应用程序项目时。 Visual Studio 2013设置以下参数:
<system.web>
<authentication mode="None"/>
</system.web>
和
<system.webServer>
<modules>
<remove name="FormsAuthenticationModule" />
</modules>
<system.webServer>
答案 0 :(得分:0)
试试这个
<configuration>
<system.web>
<authentication mode="Forms"/>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
<location path="[mymanagementfolder]">
<system.web>
<authorization>
<deny users ="?" />
<allow users ="*" />
</authorization>
</system.web>
</location>
</configuration>
如果在IIS中启用目录浏览,则应将其关闭
修改强>
我认为你应该启用Form/windows authentication
。上面的代码在我的电脑上工作正常,因为它重定向到ReturnUrl
答案 1 :(得分:0)
将您的代码更改为** **它会阻止任何未经过身份验证的用户:
<?xml version="1.0"?>
<configuration>
<system.web>
<authorization>
<allow roles="Admin"/>
<deny users="?" />
</authorization>
</system.web>
</configuration>