在ASP.NET MVC中使用Windows身份验证

在ASP.NET MVC中使用Windows身份验证,asp.net,asp.net-mvc-2,iis-6,windows-authentication,Asp.net,Asp.net Mvc 2,Iis 6,Windows Authentication,我相信这是一个基本的答案,但我的搜索能力今天帮不了我。我有一个ASP.NETMVC2(.NET3.5)应用程序。它托管在IIS 6上 为了回答这个问题,我有两个URL 我希望admin对域上的任何用户都可用,root对所有用户都可用。服务器位于域上,但域是example1.com,因此它们不相同 由于这是ASP.NET MVC,因此没有可设置权限的管理文件夹。我已经尝试过设置整个网站来阻止匿名请求,并允许所有请求。然后在web.config中,我将其设置为拒绝管理员文件夹中未经身份验证的用户

我相信这是一个基本的答案,但我的搜索能力今天帮不了我。我有一个ASP.NETMVC2(.NET3.5)应用程序。它托管在IIS 6上

为了回答这个问题,我有两个URL

我希望admin对域上的任何用户都可用,root对所有用户都可用。服务器位于域上,但域是example1.com,因此它们不相同

由于这是ASP.NET MVC,因此没有可设置权限的管理文件夹。我已经尝试过设置整个网站来阻止匿名请求,并允许所有请求。然后在web.config中,我将其设置为拒绝管理员文件夹中未经身份验证的用户和/或允许匿名访问根目录

我最后得到的是一个不起作用的登录提示。我尝试了用户名和example1\username,但始终无法登录

我错过了什么

==澄清/回答====
Pandincus给出了一个很好的代码建议,将[Authorize]添加到类中是一个非常干净的方法。然而,我的问题是,我在同一个盒子上做了所有这些。我的邮箱上有一个HOSTS条目,例如.com,我正在通过URL点击它。当我把一个主机条目放在我的另一个框中并点击该站点时,它允许我毫无问题地登录。我的问题有点不完整,因为我本应该提到这一点,而事实上这一切都很好

不要使用web.config设置访问权限。这就是在asp.net web表单中执行此操作的方式

  • 将web.config配置为使用windows身份验证
  • 在您拥有的任何管理控制器上使用[Authorize]属性

  • 任何没有[Authorize]属性的控制器都应该自动向公众开放。因此,只将属性放在要锁定的控制器上。

    好,开始搜索。。。。但当我这么做的时候。我怎样才能使它不在我的盒子上做任何事情?我的盒子是iis7.5,但它没有这么好用(据我所知)。没关系,实际上它在我的盒子上也表现得更好!你的回答没有完全解决我的问题,但它确实给了我一个更好的代码解决方案,所以我将给你答案,并在我的问题中进行扩展,以供未来的程序员使用。