【发布时间】:2014-07-16 09:15:44
【问题描述】:
我尝试使用以下配置将自定义 ServiceAuthorizationManager 添加到我的 WCF 服务 (.Net 4.5)
配置
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceAuthorization principalPermissionMode="Always" serviceAuthorizationManagerType="TestWCFService.CustomAuthorizationManager TestWCFService" />
</behavior>
</serviceBehaviors>
我收到如下所示的错误
[InvalidOperationException: ID4039: A custom ServiceAuthorizationManager has been configured. Any custom ServiceAuthorizationManager must be derived from IdentityModelServiceAuthorizationManager.]
System.ServiceModel.Description.ServiceCredentials.ConfigureServiceHost(ServiceHostBase serviceHost) +7934958
System.ServiceModel.Description.DispatcherBuilder.ValidateDescription(ServiceDescription description, ServiceHostBase serviceHost) +381
System.ServiceModel.Description.DispatcherBuilder.InitializeServiceHost(ServiceDescription description, ServiceHostBase serviceHost) +306
System.ServiceModel.ServiceHostBase.InitializeRuntime() +90
System.ServiceModel.ServiceHostBase.OnOpen(TimeSpan timeout) +175
System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout) +740
System.ServiceModel.HostingManager.ActivateService(ServiceActivationInfo serviceActivationInfo, EventTraceActivity eventTraceActivity) +125
System.ServiceModel.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath, EventTraceActivity eventTraceActivity) +901*
IdentityModelServiceAuthorizationManager 是位于 System.ServiceModel.Security.IdentityModelServiceAuthorizationManager 中的内部类
4.5 不支持吗?有没有其他方法可以达到同样的效果?
【问题讨论】: