指定授权访问服务作的设置
<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>
有关使用此配置元素的详细示例,请参阅 授权访问服务作 和 授权策略。