仅具有UserName的ASP.NET窗体身份验证

时间:2008-10-13 12:09:32

标签: asp.net security asp.net-membership membership

我的手上有一种混合情况。我正在写一个内联网asp.net网络应用程序。我不想使用完整的Windows身份验证,因为我没有在Active Directory中设置适当的组,只能根据他们所在的组来验证用户。到目前为止,我已经创建了一个成员资格数据库,并根据他们的NT登录手动验证用户。该应用程序变得越来越复杂,我正在寻找使用Membership和Roles提供程序来验证用户身份。这是我的问题:我希望能够仅基于他们的NT对用户进行身份验证,但我不想使用Windows身份验证。我想编写自己的提供程序来插入成员资格和角色提供程序,并使用Forms身份验证,但要使其透明。基于Users表,我希望能够对用户进行身份验证,或者仅根据他们的NT重定向它们。这是可能的,还是我写了自己的小框架来完成这个?如果可能的话,我想利用提供者框架。

1 个答案:

答案 0 :(得分:7)

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

您可以使用以下命令获取用户的NT名称:

  Request.ServerVariables["LOGON_USER"]  

您可以使用以下命令登录用户,无需密码:

  FormsAuthentication.RedirectFromLoginPage( userName, false );