【问题标题】:MVC 3 Windows Authentication for site except Area with Forms Authentication站点的 MVC 3 Windows 身份验证(具有表单身份验证的区域除外)
【发布时间】:2011-10-31 21:19:23
【问题描述】:

我有一个使用 Windows 身份验证的 Intranet 应用程序,效果很好。现在我需要公开一个 Api 区域。这个区域应该使用基本身份验证,但为了简单起见,我首先只是尝试让这个区域允许匿名。

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

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

在应用程序根 web.config 我有

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

所有内网控制器(Api Area 除外)都继承自具有 AuthorizeAttribute 的 BaseController

我尝试添加

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

在 API 区域的 web.config 中,但不行,仍然会提示输入凭据。

我的应用结构是这样的

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

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

感谢任何帮助/指点。

【问题讨论】:

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


    【解决方案1】:

    我不知道细节,但我看到“混合”身份验证的方式是两个 Web 应用程序。启用 Windows 身份验证的那个将使用 ASP 成员 API 对用户进行身份验证(并在必要时使用来自域帐户的信息自动创建用户名),然后重定向到另一个站点。两个站点的成员配置共享相同的应用程序 ID、密钥等。

    你可能会遇到这种情况:

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

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

    ASP.NET MVC and mixed mode authentication

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2013-11-22
      • 2013-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-13
      • 2012-03-15
      • 1970-01-01
      相关资源
      最近更新 更多