我有一个使用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区域除外。
感谢您提供任何帮助/指示。
答案 0 :(得分:1)
我不知道细节,但我看到“混合”身份验证的方式是两个Web应用程序。启用了Windows身份验证的用户将使用ASP成员资格API对用户进行身份验证(如果需要,使用域帐户中的信息自动创建用户名),然后重定向到其他站点。两个站点的成员资格配置共享相同的应用程序ID,密钥等。
你可能碰到了这个:
“您无法在单个应用程序中实现此目的,因为在IIS中为虚拟目录设置Windows身份验证后,它将不再接受来自不同域的用户。”
有关设置此版本的更多信息,请参阅此处: