MVC 3 Windows身份验证,除了具有表单身份验证的区域

时间:2011-10-31 21:19:24

标签: asp.net-mvc asp.net-mvc-3 iis

我有一个使用Windows身份验证的Intranet应用程序,效果很好。现在我需要暴露Api区域。这个区域应该使用基本的身份验证,但为了让事情变得简单我首先只是试图让这个区域匿名。

我正在使用IIS 7.5,它的配置如下:

  

IIS>我的内联网网站>身份验证> Windows身份验证已启用,   其他一切都已禁用

在应用程序根目录web.config中我有

<authentication mode="Windows"></authentication>

所有Intranet控制器(Api区域除外)都从具有AuthorizeAttribute的BaseController继承

我尝试添加

 <location path="~/Api">
    <system.web>
      <authentication mode="None" />
    </system.web>
  </location>

在API区域的web.config中,但是没有去,仍然会提示输入凭据。

我的应用程序结构如下所示

-IntranetApp
--Controllers
--Areas
----Area1
----Area2
----Api

所有应该使用Windows身份验证,但Api区域除外。

感谢您提供任何帮助/指示。

1 个答案:

答案 0 :(得分:1)

我不知道细节,但我看到“混合”身份验证的方式是两个Web应用程序。启用了Windows身份验证的用户将使用ASP成员资格API对用户进行身份验证(如果需要,使用域帐户中的信息自动创建用户名),然后重定向到其他站点。两个站点的成员资格配置共享相同的应用程序ID,密钥等。

你可能碰到了这个:

“您无法在单个应用程序中实现此目的,因为在IIS中为虚拟目录设置Windows身份验证后,它将不再接受来自不同域的用户。”

有关设置此版本的更多信息,请参阅此处:

ASP.NET MVC and mixed mode authentication