我有一个子应用程序,我想使用Windows身份验证。我希望即使在域中的人第一次到达页面时,登录框也会弹出。当我关闭内核模式身份验证时,登录框会弹出,但在3次登录尝试后失败,显示401未经授权的错误。如果我打开它,则不会要求输入密码,我认为这是因为计算机在服务器域中并且凭据已自动传递。是否有可能为所有用户显示登录表单,包括域用户?下面的图片显示了我的服务器配置。
Windows身份验证通常由IIS处理。其工作方式如下: 客户端请求页面。 IIS返回HTTP 401响应,并带有一个标头,指示其接受Windows身份验证。 只要网站是可信的,客户端浏览器会自动重新发送请求并附带用户凭据。 IIS验证用户并将凭据传递给应用程序。 所有这些都旨在实现无缝体验。 如果您希望用户每次都被提示输入凭据,则可以执行以下操作之一: 确保您的网站不受信任(不在Internet选项的受信任站点或Intranet站点中)。但您可能无法这样做。 不使用Windows身份验证。使用表单身份验证,并创建一个登录页面,让用户输入其凭据。但这意味着您必须在代码中自己验证凭据是否与Windows或Active Directory匹配。 如果您使用第二种方法,请确保在您的网站上使用SSL,因为密码将以明文形式发送。