我有一点在我的手上混合的局面。我正在写一个Intranet asp.net web应用程序。我不想用完全成熟的Windows身份验证,因为我没有正确组在Active Directory中设置为能够验证用户只需根据他们在哪个组。到现在为止做的,我创造了一个会员数据库,并根据他们的NT登录手动认证用户。该应用程序也越来越复杂,我看使用Membership和角色提供者对用户进行认证。这是我的问题:我希望能够验证只是基于他们的NT用户,但我不希望使用Windows身份验证。我想写我自己的供应商插入的成员资格和角色提供者,并使用Forms身份验证,但要透明。基于一个用户表,我希望能够对用户进行认证或仅根据他们的NT重定向他们。这是可能的,还是我卡住写我自己的小框架来做到这一点?我想利用的提供程序框架的优点,如果在所有可能的。

有帮助吗?

解决方案

设置你的web.config使用窗体身份验证。结果 确保集成身份验证在IIS中打开(您可能需要禁用匿名为好)。这将让你得到该用户的NT名称。

您可以获取用户的NT名称:

  Request.ServerVariables["LOGON_USER"]  

可以在登录用户,无需输入密码,以:

  FormsAuthentication.RedirectFromLoginPage( userName, false ); 
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top