如何在ASP.NET MVC应用程序中实现以下内容:
我知道如何实现4和5,但无法找到有关如何组合NTLM和表单的信息.因此,永远不会显示NTLM本机登录/密码对话框 - 透明身份验证或外观漂亮的登录页面.
该怎么办?是否应该询问用户登录名和密码?可以使用她当前的凭据(域用户名)而无需输入登录名和密码吗?
更新这些,调查相同的问题:
当我问这个时,我并不完全理解NTLM身份验证如何在内部工作.这里需要了解的重要一点是,如果用户的浏览器不能正确支持NTLM,或者用户禁用了NTLM支持,那么服务器永远不会有机会解决这个问题.
Windows身份验证的工作原理:
如您所见,不支持NTLM的浏览器不会转到步骤(3),而是会向用户显示IIS生成的错误401页面.
如果用户没有凭据,则在取消NTLM身份验证后,弹出对话框窗口浏览器也不会继续(3).
因此,我们没有机会自动将用户重定向到自定义登录页面.
这里唯一的选择是有一个"网关"页面,我们决定用户是否应该支持NTLM,如果是,请重定向到受NTLM保护的主页.
如果没有,请显示登录表单并通过手动输入登录名和密码进行身份验证.
通常通过匹配IP范围或通过检查预定义IP表来基于用户的IP地址和/或主机名做出决定.