<serviceAuthorization> 元素

指定用于授予服务操作访问权限的设置。

configuration
   system.serviceModel
     behaviors
       <serviceBehaviors>
         behavior
           <serviceAuthorization>

语法

<serviceAuthorization impersonateCallerForAllOperations="Boolean"
                      principalPermissionMode="None/UseWindowsGroups/UseAspNetRoles/Custom"
                      roleProviderName="String"
                      serviceAuthorizationManagerType="String">
  <authorizationPolicies>
    <add policyType="String" />
  </authorizationPolicies>
</serviceAuthorization>

特性和元素

以下几节描述了特性、子元素和父元素:

特性

属性 说明
impersonateCallerForAllOperations 一个布尔值,指定是否服务中的所有操作都模拟调用方。 默认值为 false

当特定服务操作模拟调用方时,线程上下文会在执行指定服务前切换为调用方上下文。
principalPermissionMode 设置用于在服务器上执行操作的主体。 包括以下值:

- 无
- UseWindowsGroups
- UseAspNetRoles
- Custom

默认值为 UseWindowsGroups。 此值的类型为 PrincipalPermissionMode。 有关使用此属性的详细信息,请参阅 如何:使用 PrincipalPermissionAttribute 类限制访问权限
roleProviderName 一个字符串,指定为 Windows Communication Foundation (WCF) 应用程序提供角色信息的角色提供程序的名称。 默认值为空字符串。
ServiceAuthorizationManagerType 一个包含服务授权管理器的类型的字符串。 有关详细信息,请参阅 ServiceAuthorizationManager

子元素

元素 说明
authorizationPolicies 包含可使用 add 关键字添加的授权策略类型的集合。 每个授权类型都包含一个所需的 policyType 属性,此属性是一个字符串。 该属性指定一个授权策略,可以将一组输入声明转换为另一组声明。 可以根据该授权策略来授予或拒绝访问控制。 有关详细信息,请参阅 AuthorizationPolicyTypeElement

父元素

元素 说明
<behavior> 包含服务行为的设置集合。

备注

本节包含一些影响授权、自定义角色提供程序和模拟的元素。

principalPermissionMode 属性指定在授权使用受保护方法时要使用的用户组。 默认值为 UseWindowsGroups,该值指定在 Windows 组(例如,“Administrators”或“Users”)中搜索试图访问某个资源的标识。 你还可以指定 UseAspNetRoles 以使用自定义角色提供程序,该提供程序在 元素下配置,如下面的代码所示<>:

<system.web>
  <membership defaultProvider="SqlProvider"
              userIsOnlineTimeWindow="15">
    <providers>
      <clear />
      <add name="SqlProvider"
           type="System.Web.Security.SqlMembershipProvider"
           connectionStringName="SqlConn"
           applicationName="MembershipProvider"
           enablePasswordRetrieval="false"
           enablePasswordReset="false"
           requiresQuestionAndAnswer="false"
           requiresUniqueEmail="true"
           passwordFormat="Hashed" />
    </providers>
  </membership>
  <!-- Other configuration code not shown. -->
</system.web>

下面的代码演示与 roleProviderName 特性一起使用的 principalPermissionMode

<behaviors>
  <behavior name="ServiceBehaviour">
    <serviceAuthorization principalPermissionMode ="UseAspNetRoles"
                          roleProviderName ="SqlProvider" />
  </behavior>
  <!-- Other configuration code not shown. -->
</behaviors>

有关使用此配置元素的详细示例,请参阅 授权访问服务操作授权策略

请参阅