Q
WCF端点路由
1
A
回答
0
基本上你需要为你的拦截器创建一个自定义行为。这个过程相当深奥,所以这里是一个链接,而不是我输入所有这些。
http://msdn.microsoft.com/en-us/magazine/cc163302.aspx
的主要步骤为:
创建一个自定义行为
public class AuthorizationInterceptorBehavior: IEndpointBehavior, IServiceBehavior
{
//Code removed
...
}
创建BehaviorExtension:
public class AuthorizationInterceptorBehaviorExtensionElement : BehaviorExtensionElement
{
public override Type BehaviorType
{
get
{
return typeof(AuthorizationInterceptorBehavior);
}
}
protected override object CreateBehavior()
{
return new AuthorizationInterceptorBehavior();
}
}
}
然后创建你的拦截器,并把所有的代码在AfterReceivedRequest方法中:
public class AuthorizationInterceptor : IDispatchMessageInspector
{ //This class implements the IDispatchMessageInspector which provides the basic access to each message when it is received
//by the service and before is sent back to the client
#region IDispatchMessageInspector Members
public object AfterReceiveRequest(ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel, System.ServiceModel.InstanceContext instanceContext)
{
//YOUR CODE HERE
...}
然后你只需要添加你的拦截到您的配置文件:
<system.serviceModel>
<extensions>
<behaviorExtensions>
<add name="authorizationInterceptor" type="YOUR.ASSEMBLY.AuthorizationInterceptorBehaviorExtensionElement, YOUR.ASSEMBLY, Version=X.X.X.X, Culture=neutral, PublicKeyToken=XXXXXXXXXX" />
</behaviorExtensions>
</extensions>
</extensions>
<behaviors>
<serviceBehaviors>
<behavior name="SomeServiceBehavior">
<authorizationInterceptor />
...
如果您需要更多的帮助或指导,评论,我会尽快给您提供更多详情。最难的部分是与传入的请求一起工作,因为它现在还没有反序列化,因此您必须将其作为POX(Plain Ol'Xml)使用。
0
相关问题
- 1. 在IIS中托管的tcp端点的WCF路由
- 2. 为http和https端点配置路由(global.asax)的WCF 4
- 3. WCF路由+ SSL
- 4. WCF 4.0路由
- 5. WCF路由+ WIF
- 6. WCF - 主“路由器”
- 7. WCF - 路由问题
- 8. WCF basichttpbinding netTcpBinding路由
- 9. react路由器:客户端路由与服务器端路由
- 10. Angular.js路由:如何到达端点路由?
- 11. WCF IPv6端点
- 12. WCF REST端点
- 13. Solace多节点路由端口
- 14. WebApi2 RoutePrefix和端点路由=未找到
- 15. WCF中间层在路由器后面的2个端点之间启用无路由器配置的调用
- 16. WCF,IIS和端点
- 17. WCF端点配置
- 18. WCF多个端点
- 19. WCF端点异常
- 20. WCF多点服务端点
- 21. WCF 4路由服务wif
- 22. WCF路由消息安全
- 23. 服务路由WCF RestFul/JSON
- 24. WCF路由/ ESB架构?
- 25. wcf - .net 3.5客户端和.net 4.0路由服务
- 26. 多个查询相同的路由端点在节点快递
- 27. 与节点路由
- 28. Django,Rails路由...点?
- 29. WCF路由服务不使用回调路由wsDualHttpBinding
- 30. 使用.Net4 WCF路由器服务的动态路由
好,非常感谢另一种方法。 只是为了确认,是否在读取安全令牌之前触发IDispatchMessageInspector?以及如何在不同的端点之间进行路由? 据我所知,IMessageInspector适用于DispatchRuntime,而这又适用于端点。 – 2010-06-16 04:13:36
安全令牌在涉及到Web服务时是一个非常通用的术语,您能详细说明您尝试使用的安全令牌类型以及授权这些“不同凭证”的方式吗? – CkH 2010-06-16 13:01:52