2008-10-13 45 views
0

我手上有一点混合情况。我正在编写一个Intranet的asp.net网络应用程序。我不想使用全面的Windows身份验证,因为我没有在Active Directory中设置适当的组,以便能够基于他们所属的组进行身份验证。直到现在,我已经创建了一个成员数据库,并基于他们的NT登录手动验证用户。该应用程序变得越来越复杂,我正在使用Membership和Roles提供程序来验证用户身份。这是我的问题:我希望能够基于NT来验证用户身份,但我不想使用Windows身份验证。我想编写自己的提供程序来插入成员资格和角色提供程序,并使用Forms身份验证,但使其透明。基于用户表,我希望能够验证用户或基于他们的NT单独重定向他们。这是可能的,还是我坚持写我自己的小框架来完成这个?如果可能的话,我想利用提供者框架。只有用户名的ASP.NET表单身份验证

+0

Windows身份验证的具体缺点是你要克服什么? (您的自定义会员数据库的问题相同。) – Greg 2008-10-13 20:11:25

回答

7

将您的web.config设置为使用表单身份验证。
确保在IIS中打开集成身份验证(您可能还需要禁用匿名)。这将允许您获取用户的NT名称。

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

Request.ServerVariables["LOGON_USER"] 

您可以登录的用户,无需输入密码,具有:

FormsAuthentication.RedirectFromLoginPage(userName, false);