我有一个tcpbinding服务。我有一个接口有20个方法。我有不同类型的客户端。其中一个可以访问这20个方法中的10个,我有另一个客户端可以访问所有20个方法,另一个只能访问15个。那么我怎样才能实现这个?我怎么去认证操作契约?哪个属性?有没有其他方法可以实现这一点?我们可以通过很多方式实现这一目Wcf不同的客户端不同的方法相同的接口
1
A
回答
5
您可以将任何服务和的所有方法暴露在您喜欢的任何类型的协议绑定上。
您不能但是只显示您的一些方法 - 例如,您将不能使用与20个方法签订单一服务合同,然后只将其中的10个公开给某些客户端。
基本上,您需要为要公开的每组方法创建一个服务接口。
然后你可以做的是有一个服务类实现前10个方法,并将该服务公开给所有可以访问这10个方法的客户端。
然后,您可以使用另外5个方法获得第二个服务接口,并且拥有第二个服务实现类,它为总共15个方法实现第一个和第二个接口 - 并将该服务通过一些绑定展示给另一个客户 - 等等......
-1
今天我遇到了同样的问题,它实际上很简单。基本上你有N个不同的接口,有N个不同的.svc文件。 主要代码位于具有所有功能的interface/svc中。在其他interfaces/svc文件中,你必须声明方法和实现,你可以简单地声明主对象,然后调用它的方法。例如:
主界面/ SVC - IMainInterface - Main.svc
class MainSVC
{
public void functionA()
{
//code
}
public void functionB()
{
//code
}
}
在其他接口只声明你需要什么: 客户接口/ SVC - ICustomer - Customer.svc
class MainSVC
{
public void functionA()
{
Main main = new Main();
main.functionA();
}
}
当然,您的客户必须使用Customer.svc而不是Main.svc,否则他可以使用所有方法。
相关问题
- 1. 客户端和服务器上的相同连接的不同端口号
- 2. 使用相同连接的不同客户端mysql JSP
- 3. 具有相同端口的不同VirtualHosts
- 4. HBase不同的客户端
- 5. WCF服务使用来自不同进程的相同端口?
- 6. 多个客户端,相同的IP不同端口:错误身份验证
- 7. WCF每种方法的不同端点?
- 8. 导致相同的查询在不同的Web客户端
- 9. 不同端口上的套接字服务器和不同端口上的客户端
- 10. WCF - 动态调用实现相同接口的不同Web服务端点
- 11. ADO.NET(ODP.NET)和用于不同客户端连接的相同连接池
- 12. 相同元素不同版本的IE中不同客户端宽度值
- 13. 不同语言的memcache客户端以相同的方式散列吗?
- 14. 从同一客户端接收不同的HttpServletRequest?
- 15. 相同的代码不适用于不同于80的端口
- 16. 如何以不同的方式实现相同接口的通用方法?
- 17. 在不同端点的同名方法
- 18. 与不同方法的接口参数
- 19. 使用相同的客户端访问相同的Web服务
- 20. 相同的域相同的端口,但不同的路径的cookie问题
- 21. C#:WCF客户端不连接到同一台机器
- 22. 不同的终端窗口,相同的位置,不同的结果?
- 23. 可能有相同的合同,相同的绑定,相同的地址,但不同的端口?
- 24. C++客户端在不同端口上的响应
- 25. 南希不同客户端的不同HttpStatusCode
- 26. Elasticsearch - 与不同客户端的不同结果
- 27. 为不同的客户端编写JavaScript
- 28. signalr - 与不同的客户端
- 29. 不同客户端的资源文件
- 30. 矛盾例外规格相同的方法在不同的接口
因此,如果您有多个组合,我们需要去执行许多服务合同并通过多次编写相同的实现代码来实现它们......这是实现这一目标的唯一方法吗?我们可以设置对方法的保护吗?我们用操作合同编写任何属性来单独检查我们服务的客户端的认证信息? –
您需要拥有尽可能多的**服务契约**,因为您需要不同的功能集,而且您可能需要多个服务实现类 - 但这些服务实现**当然**可以共享大部分代码!你只需要有不同的“外墙”。无需重复编写相同的代码! –