我确信这是一个基本答案,但我的搜索能力今天对我没有帮助。我有一个 ASP.NET MVC 2 (.NET 3.5) 应用程序。它托管在 IIS 6 上。
为了这个问题,我有两个网址。
http://example.com/ http://example.com/
http://example.com/admin http://example.com/admin
我希望域中的任何用户都可以使用管理员权限,并且所有用户都可以使用根权限。服务器在域上,但域是 example1.com,所以它们不一样。
由于这是 ASP.NET MVC,因此没有可设置权限的 Admin 文件夹。我尝试将整个网站设置为阻止匿名请求并允许所有请求。然后在 web.config 中,我将其设置为拒绝管理文件夹中未经身份验证的用户和/或允许对根目录的匿名访问。
我最终得到的是一个不起作用的登录提示。我尝试过用户名和 example1\username 但总是无法登录。
我缺少什么?
====澄清/回答====
Pandincus 给出了很好的代码建议,将 [Authorize] 添加到类中是完成这项工作的一种非常干净的方法。然而,我的问题最终是我在同一个盒子上完成所有这些工作。我的盒子上有一个 example.com 的 HOSTS 条目,并通过 URL 访问它。当我将 HOSTS 条目放在另一个盒子上并点击该网站时,它允许我毫无问题地登录。我的问题有点不完整,因为我应该提到这一点以及事实http://本地主机/ http://localhost/工作得很好。
不要使用 web.config 来设置访问权限。这就是您在 ASP.NET Web 表单中执行此操作的方式。
- 配置您的 web.config 以使用 Windows 身份验证。
- 在您拥有的任何管理控制器上使用 [Authorize] 属性。
任何没有 [Authorize] 属性的控制器都应自动向公众开放。因此,只需将您的属性放在您想要锁定的控制器上即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)