【问题标题】:ASP.NET Forms Authentication With Only UserName仅使用用户名的 ASP.NET 表单身份验证
【发布时间】:2008-10-13 12:09:31
【问题描述】:

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

【问题讨论】:

  • 您想克服 Windows 身份验证的哪些具体缺点? (您的自定义会员数据库也有同样的问题。)

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


【解决方案1】:

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

您可以通过以下方式获取用户的 NT 名称:

  Request.ServerVariables["LOGON_USER"]  

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

  FormsAuthentication.RedirectFromLoginPage( userName, false ); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 2020-08-29
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    相关资源
    最近更新 更多