C# 使用active directory和访问控制的asp.net表单身份验证

C# 使用active directory和访问控制的asp.net表单身份验证,c#,asp.net,authentication,active-directory,web-config,C#,Asp.net,Authentication,Active Directory,Web Config,在此之后,我已经能够使用Active Directory创建一个工作的ASP.NET web表单身份验证 我有两个问题(其中一个可能是针对我的需要): 我在web.config中的membership元素中为ConnectionUsername和ConnectionPassword输入了自己的用户名和密码。我觉得奇怪的是,当我对域中的所有用户进行身份验证时,我需要在web.config中输入自己的用户名和密码。我认为应该使用登录表单中的用户名和密码,除非我理解不正确。我们通常在membershi

在此之后,我已经能够使用Active Directory创建一个工作的ASP.NET web表单身份验证

我有两个问题(其中一个可能是针对我的需要):

  • 我在
    web.config
    中的
    membership
    元素中为
    ConnectionUsername
    ConnectionPassword
    输入了自己的用户名和密码。我觉得奇怪的是,当我对域中的所有用户进行身份验证时,我需要在
    web.config
    中输入自己的用户名和密码。我认为应该使用登录表单中的用户名和密码,除非我理解不正确。我们通常在
    membership
    元素的
    web.config
    中放入谁的
    username
    password

  • 在域中的数百个用户中,我需要让几个用户(比如说其中20个)访问几个页面。我读过有关Active Directory访问控制的内容,但我不想走这条路。在数据库中有一个具有访问这些特殊页面的用户名列表的表,并匹配登录用户是否在该表中,如果是,则进行授权,这是否常见和合理

  • 感谢您的意见。

    关于#1:

    通常,您会为被识别为“应用程序”的数据库创建一个用户,并指定这些凭据。“应用程序”代表用户

    或者,为了限制在数据库级别的访问,您不会在连接字符串中指定凭据,而是在连接字符串中使用“impersonate=true;”选项

    关于#2:

    您可以通过允许和拒绝节点限制对web.config中特定用户的访问,例如:

    <system.web>
    <authorization>
      <allow users="MyCompanyDomain\John.Deere,MyCompanyDomain\Jane.Doore"/>
      <deny users="*"/>
    </authorization>
    </system.web>
    
    
    

    在这个实例中,按角色进行身份验证可能更容易,但这实际上取决于您的用例。如果您想要访问权限的绝对粒度,那么拥有一个用户表也是有意义的。感谢您在@ElGavilan的提示性评论。我想有一个特殊的表,因为我怀疑广告的角色只属于我想要授权的用户组。我想避免在广告中创造一个特殊的角色来适应这种情况。但感谢您确认创建用户表是有意义的。感谢@Domin8urMind,这正是我想要的信息。我试过了,但没有成功。你能告诉我把
    impersonate=true
    放在哪里吗。我的连接字符串与那个相同,只是它使用我自己的ldap。我知道了。我需要把这个也放在模拟中才能工作