如何:将 ASP.NET 角色提供程序与服务一起使用

ASP.NET 角色提供程序(与 ASP.NET 成员资格提供程序一起提供)是一种可供 ASP.NET 开发人员创建网站的功能,这些网站允许用户通过网站创建帐户并向用户分配用于授权的角色。借助此功能,任何用户都可以通过网站建立帐户,并登录以获取该网站及其服务的独占访问权。这与要求用户在 Windows 域中具有帐户的 Windows 安全完全不同。所有提供凭据(用户名/密码组合)的用户都可以使用该站点及其服务。

有关示例应用程序,请参见Membership and Role Provider。有关 ASP.NET 成员资格提供程序功能的更多信息,请参见如何:使用 ASP.NET 成员资格提供程序

角色提供程序功能使用 SQL Server 数据库存储用户信息。Windows Communication Foundation (WCF) 开发人员可以利用这些功能实现安全性。当集成到 WCF 应用程序中时,用户必须向 WCF 客户端应用程序提供用户名/密码组合。若要让 WCF 使用该数据库,您必须创建 ServiceAuthorizationBehavior 类的一个实例,将其 PrincipalPermissionMode 属性设置为 UseAspNetRoles,并将行为集合的实例添加到承载服务的 ServiceHost 中。

配置角色提供程序

  1. 在 Web.config 文件中的 <system.web> 元素下,添加 <roleManager> 元素,并将其 enabled 属性设置为 true

  2. defaultProvider 属性设置为 SqlRoleProvider

  3. 添加一个 <providers> 元素,将其作为 <roleManager> 元素的子级。

  4. 按照下面的示例所示,添加 <add> 元素(其 nametypeconnectionStringNameapplicationName 属性设置为相应的值),将其作为 <providers> 元素的子级。

    <!-- Configure the Sql Role Provider. -->
    <roleManager enabled ="true" 
     defaultProvider ="SqlRoleProvider" >
       <providers>
         <add name ="SqlRoleProvider" 
           type="System.Web.Security.SqlRoleProvider" 
           connectionStringName="SqlConn" 
           applicationName="MembershipAndRoleProviderSample"/>
       </providers>
    </roleManager>
    

将服务配置为使用角色提供程序

  1. 在 Web.config 文件中,添加 <system.ServiceModel> 元素。

  2. 向 <system.ServiceModel> 元素中添加一个 <behaviors> 元素。

  3. 向 <behaviors> 元素中添加一个 serviceBehaviors section

  4. 添加 Behavior element 元素并将 name 属性设置为适当的值。

  5. 向 <behavior> 元素中添加一个 <serviceAuthorization> element

  6. principalPermissionMode 属性设置为 UseAspNetRoles

  7. roleProviderName 属性设置为 SqlRoleProvider。下面的示例演示此配置的一个片段。

    <behaviors>
     <serviceBehaviors>
      <behavior name="CalculatorServiceBehavior">
       <serviceAuthorization principalPermissionMode ="UseAspNetRoles"
                             roleProviderName ="SqlRoleProvider" />
      </behavior>
     </serviceBehaviors>
    </behaviors>
    

另请参见

任务

如何:使用 ASP.NET 成员资格提供程序

其他资源

Membership and Role Provider