2016-05-13 83 views
0

我试图限制文件夹的访问使用下面的Web.config文件只允许用户与管理员角色的访问:Web.config文件似乎并没有影响到服务器

<configuration> 
    <system.web> 
     <authorization> 
     <allow roles="Admin"/> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</configuration> 

该文件位于下子目录“Views/Admin /”。我有另一个文件位于“Views/Admin/Main /”下,只有管理员才能访问(基于上述规则),但所有测试用例都允许任何匿名用户访问该文件。我目前只使用本地主机,以防有所作为。

问题是,任何用户都被授予对这些文件的访问权限。为了识别Web.config文件,是否需要执行额外的步骤?

我目前通过一个“管理员”按钮访问该页面,这错误地允许任何用户访问管理页面(请注意,我也有代码隐藏此管理按钮,当用户不是一个管理员似乎工作):

<li>@Html.ActionLink("Admin", "Admin", "Admin")</li> 

使用下面的Web.config文件仍然允许用户访问的网页,这让我觉得很简单,一路上我错过了一个额外的步骤(请注意,即使不是管理员应能够使用这些规则访问页面):

<configuration> 
    <system.web> 
     <authorization> 
     <deny users="*"/> 
     </authorization> 
    </system.web> 
</configuration> 

任何想法我做错了什么?

+0

告诉我们你的代码 – Baahubali

+0

[asp.net授权 - 拒绝所有登录页面之前登录](http://stackoverflow.com/questions/17567902/asp-net-authorization-deny-all-before-login-除了注册页面/ 17568891#17568891)可能有帮助 – Satpal

回答

0

为什么不使用内置的ASP.Net身份机制在控制器中使用[Authorize]属性?

https://www.asp.net/web-api/overview/security/authentication-and-authorization-in-aspnet-web-api

还是我完全误解了问题?

+0

嗯,我不知道。我刚刚在这里和那里继续教程,它所描述的所有内容都是创建Web.config文件,就好像它可以独立运行一样。我会看看这篇文章,看看它是否有帮助。 – Colton

+0

请尝试按照我链接到您的文章中的提示,它包含正确的方式来授权ASP.Net访问99%的所有需求:) –

+0

是否使用了Web.config废弃呢?我仍然想知道为什么Web.config路由不起作用。但是,是的,使用授权在第一次尝试上做了伎俩,谢谢。 – Colton

相关问题