首页 文章

ASP.NET表单身份验证NTLM LDAP

提问于
浏览
3

我正在尝试将LDAP支持添加到使用表单身份验证的现有ASP.NET网站 . 这不是一个大问题,我只是构建一个简单的登录对话框(普通HTTP POST),查询LDAP目录并通过表单身份验证票证登录用户 .

通过NTLM(集成Windows身份验证)自动获取用户凭据非常好,而无需登录对话框(就像使用ASP.NET Windows身份验证与同一Active Directory中的计算机一样) . 有没有一种简单的方法可以做到这一点(请记住,我不能使用Windows身份验证为我的ASP.NET应用程序和服务器不在Active Directory域,我需要能够手动查询LDAP目录)?或者我是否必须手动执行所有LDAP握手/质询/响应?

谢谢你的帮助,~saxx

1 回答

  • 1

    我在这里的内联网上这样做 . 这些是我使用的步骤......

    • 创建登录页面(login.aspx似乎不错)并设置Web应用程序以进行表单身份验证 . 将授权设置为拒绝匿名 . 这意味着,如果用户没有身份验证票,任何使用您应用的尝试都会导致用户被重定向到您的登录页面 .

    • 现在迈出重要的一步 . 在IIS中,将应用程序设置为仅允许匿名 . 在您的登录页面上,将其更改为仅Windows集成 . 现在发生的情况是当用户退回到您的登录页面时,IIS强制进行NTLM身份验证 . 我们现在在 Headers 中有用户名 .

    • 第二个重要步骤 . 在page_load方法中添加:

    FormsAuthentication.RedirectFromLoginPage(Request.ServerVariables["Logon_user"], false); 这样做是为了获取IIS将始终提供给我们的用户名并将其放入表单身份验证票证中 .

    当然,您可能想要做一些整理,可能会添加注销功能,或者剥离用户名的域名 .

    西蒙

相关问题