IIS7:允许用户在同一文件上使用“Windows 身份验证”或“基本身份验证”来识别自己

IIS7:允许用户在同一文件上使用“Windows 身份验证”或“基本身份验证”来识别自己

是否可以在 IIS7 中的一个 .asmx 页面上同时启用 Windows 身份验证和基本身份验证?

我想要的是:

  • 有人调用 webservice
  • 如果可能的话,使用 Windows 身份验证(例如从另一个基于 Microsoft 的应用程序调用时)
  • 如果客户端不知道如何处理 Windows 身份验证:允许他使用基本身份验证(例如,当客户端是我们无法真正修改的程序时)。
  • 如果仍然不起作用,请发送 401

看起来 - 一旦我启用 Windows 身份验证 - 所有基本身份验证尝试都会被忽略/以 401 回答,即使在我启用 Windows 身份验证之前登录凭据有效。

答案1

在 IIS(网站道具)中:

  • 取消勾选“匿名访问”
  • 勾选“集成 Windows 身份验证”和“基本身份验证”

确保在 web.config 中具有:

<identity impersonate="true"/>
<authentication mode="Windows" /> 

默认设置为:

<authentication mode="None" />

如果“某人调用 webservice”不在同一台机器上,
那么您将需要在 AD 中配置计算机以进行受信任的委派,以便 Windows 身份验证能够正常工作。

在客户端的 IE
菜单上,工具--> Internet 选项--> 高级--> 在安全下检查“集成 Windows 身份验证”

答案2

这可能过于简单,但似乎您有两个选择:

  • Windows 和基本用户通过不同的页面登录

或者

  • Windows 用户使用域\用户名登录,基本用户使用服务器名称\用户名登录

这可能是最便宜的解决方案,希望有人能提供更好的解决方案。;)

相关内容