<serviceAuthorization> 元素

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

架构层次结构

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <serviceBehaviors> 的 <behavior>
        <serviceAuthorization> 元素

语法

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

属性和元素

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

属性

特性 说明

impersonateCallerForAllOperations

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

当特定服务操作模拟调用方时,线程上下文会在执行指定服务前切换为调用方上下文。

principalPermissionMode

设置用于在服务器上执行操作的主体。包括以下值:

  • None

  • UseWindowsGroups

  • UseAspNetRoles

  • Custom

默认值为 UseWindowsGroups。此值的类型为 PrincipalPermissionMode。有关使用此属性的更多信息,请参见How To: Restrict Access With the PrincipalPermissionAttribute

roleProviderName

一个字符串,指定为 Windows Communication Foundation (WCF) 应用程序提供角色信息的角色提供程序的名称。默认值为一个空字符串。

ServiceAuthorizationManagerType

一个包含服务授权管理器的类型的字符串。有关更多信息,请参见 ServiceAuthorizationManager

子元素

元素 说明

authorizationPolicies

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

父元素

元素 说明

<endpointBehaviors> 的 <behavior>

包含服务行为的设置集合。

备注

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

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

<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>

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

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

有关使用此配置元素的详细示例,请参见Authorizing Access to Service OperationsAuthorization Policy

另请参见

参考

ServiceAuthorizationElement
ServiceAuthorizationBehavior

其他资源

Security Behaviors in WCF
Authorizing Access to Service Operations
How To: Create a Custom AuthorizationManager for a Service
How To: Restrict Access With the PrincipalPermissionAttribute
Authorization Policy