【问题标题】:add roles to user (Windows authentication)向用户添加角色(Windows 身份验证)
【发布时间】:2012-08-08 17:28:34
【问题描述】:

我的 Web 应用程序中有两个文件夹,第一个用于 normal_user,第二个用于管理员,为了保护它们,我在 asp.net 配置中创建了两个角色,一切正常,但问题是我想要使用 Windows 身份验证而不是 Forms 身份验证来验证我的用户,我应该做什么?

【问题讨论】:

    标签: c# asp.net iis iis-7


    【解决方案1】:

    清单 1:通过 web.config 文件拒绝所有用户。向 windows 声明您的模式:

    <system.web>
       <authentication mode="Windows" />
       <authorization>
          <deny users="*" />
       </authorization>
    </system.web>
    

    在下面的链接中也向下滚动:“验证和授权组:

    根据我的书,解释了所有 4 种:

    http://www.wrox.com/WileyCDA/Section/ASP-NET-3-5-Windows-Based-Authentication.id-310905.html

    【讨论】:

    • 没问题@ben01!如果你想把我作为你的答案/投票:)
    • @ben01,顺便说一句,只能给出一个检查答案。
    【解决方案2】:

    您可以通过Windows Authentication ProviderWindows Authentication 访问

    你应该更新你的 authentication 部分

    <system.web>
     <authentication mode="Windows"/>
    </system.web>
    

    要为您的 Web 应用程序启用模拟,在应用程序的 Web.config 文件设置标识元素的模拟属性 为true,如下代码示例所示。

    <system.web>
      <authentication mode="Windows"/>
      <identity impersonate="true"/>
    </system.web>
    

    当您使用 Windows 身份验证时,用户名采用 domainName\userName 形式。 >Windows 组被用作角色,他们承担 形式为 domainName\windowsGroupName。当地知名团体,例如 使用“BUILTIN”前缀引用管理员和用户 如此处所示。

     <authorization>   
        <allow users="DomainName\Bob, DomainName\Mary" />  
        <allow roles="BUILTIN\Administrators, DomainName\Manager" />   
        <deny  users="*" /> 
     </authorization>
    

    【讨论】:

    • 但是我的两个文件夹由两个角色保护,如何在 web.config 中为我的 Windows 用户添加角色?
    • 如果您使用的是 Windows 身份验证角色,则相当于用户所属的本地组,或者在域的情况下,相当于 Active Directory 组。它不使用 RoleProvider。
    【解决方案3】:

    如果您想使用自己的 RoleProvider,则需要使用表单身份验证。但是,您可以使用内置的 ActiveDirectoryMembershipProvider Class 针对 Active Directory 对用户进行身份验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-23
      • 2020-09-28
      • 2023-03-25
      • 2014-08-08
      • 2012-01-13
      • 2017-03-05
      相关资源
      最近更新 更多