<serviceAuthorization> 元素

指定授权访问服务作的设置

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

Syntax

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

属性和元素

以下部分介绍属性、子元素和父元素:

特性

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

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

- None
- UseWindowsGroups
- UseAspNetRoles
- Custom

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

子元素

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

父元素

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

注解

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

principalPermissionMode 属性指定授权使用受保护方法时要使用的用户组。 默认值为 UseWindowsGroups 并指定尝试访问资源的标识(如“管理员”或“用户”)的 Windows 组。 还可以指定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>

以下代码显示了与 roleProviderName 特性一起使用 principalPermissionMode 的代码:

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

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

另请参阅