【问题标题】:.net active directory (ldap) authentication with membership authorization.net 活动目录 (ldap) 身份验证和成员授权
【发布时间】:2014-12-25 20:47:39
【问题描述】:

我正在尝试创建一个混合成员资格,它使用活动目录 (ldap) 进行身份验证,但使用成员资格提供程序和角色进行授权。

我不想为每个页面加载查询活动目录,但我想首先通过活动目录对用户进行身份验证,然后允许成员资格提供者通过 web.config 授权属性授权用户访问每个页面。

我是 .net 会员模型以及如何实施这种混合解决方案的新手。我找到了许多使用 Web 表单实现 Active Directory 的示例,但不是满足我需求的解决方案。

也非常欢迎对此解决方案的任何伪代码或一般描述。

谢谢!

更新问题:目前正在研究在成员资格/角色架构之上实施活动目录 (AD) 身份验证。基本上首先使用 AD 进行身份验证,根据需要使用用户/角色更新成员身份数据库表,将用户设置为通过成员身份进行身份验证,并允许成员身份处理所有授权要求。虽然这不像创建自定义成员资格/角色提供程序那样干净,但我想知道这个解决方案是否可以被认为是有效的?

【问题讨论】:

  • 老实说,如果您是 .net 世界的新手,刚开始这可能是个大问题。可以这样做,但您肯定希望熟悉 Membership Provider 的实现。如果您将问题缩小并提出与流程相关的具体问题,您将从该社区获得更好的反馈。

标签: .net vb.net active-directory ldap asp.net-membership


【解决方案1】:

您可以通过执行以下操作在 Membership 提供者之上实现您自己的层来做到这一点

  1. 您需要检查用户是否在活动目录中进行了身份验证
  2. 之后,如果此用户不存在,您需要将该用户添加到您的会员数据库和角色中,并稍后使用它来控制使用角色和其他内容
  3. 之后,您可以开始为此用户设置身份验证 cookie(如果用户有效)并将其添加到响应中。
  4. 每次经过身份验证的用户请求页面时,您都不需要针对 Active Directory 验证他,您只需要为匿名用户执行此操作。

工作量很大,但你可以做到,毕竟你只需要阅读更多关于 Asp.net 会员的信息

【讨论】:

    【解决方案2】:

    我建议使用 NTLM 来检索当前的 windows 域用户名并使用它来预填充表单的用户名字段。用户输入密码并完成对您的应用程序的身份验证后,对活动目录运行 LDAP 查询。如果 AD 身份验证失败,请使用友好消息将其注销。

    不幸的是,我需要太多代码来发布这个答案。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-24
      • 2012-09-06
      • 2014-11-25
      相关资源
      最近更新 更多