我有一个客户端/服务器应用程序,它在服务器上有许多客户机和一个服务.....
在服务器端,我将使用Windows服务来托管我的WCF服务。该服务将通过互联网将数据传递到客户端计算机。我想我将使用带有消息级安全性的wsHttpBinding,这需要用户名或证书。
现在这是问题.....
- 我们不希望让用户登录系统
- 客户端计算机上没有Windows身份验证
- 我会使用证书但是,我们每天都有大量的客户端机器出来,所以在每台机器上手动安装证书不是一个选择(除非它可以通过代码完成...和我的意思是创建和安装)
有人对如何获得这种服务有任何想法吗?提前致谢
和平
答案 0 :(得分:0)
在您的场景中,您似乎正在寻找没有任何安全性的“basicHttpBinding”。
<bindings>
<basicHttpBinding>
<binding name="NoSecurity">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
然后配置端点以使用该绑定配置:
<system.serviceModel>
<services>
<service name="YourNamespace.YourService"
behaviorConfiguration="MyServiceBehavior">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="NoSecurity"
contract="YourNamespace.IMyService">
</endpoint>
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
还有一个非常好的blog post series,就五种不同的典型场景来说说WCF安全的基础知识 - 优秀的阅读!您的方案将是“根本没有安全性”的情况。
另一篇很好的介绍性文章是Michele Leroux Bustamante的Fundamentals of WCF Security。
可以在Codeplex上的WCF Security Guidance找到更全面(但也更复杂)的WCF指南。
马克
答案 1 :(得分:0)
因为您将使用自己的应用程序。您可以将wshttpbinding与用户名和密码身份验证(客户端凭据类型基本)一起使用,其中您的应用程序从配置文件中读取用户名和密码。
http://msdn.microsoft.com/en-us/library/ms731299.aspx
修改强>
Windows服务可以在用户没有密码的帐户下运行。该服务位于受ACL保护的目录中,因此该计算机的用户无权访问该配置文件。
答案 2 :(得分:0)
在WCF中,消息通过各种支持的协议传输,包括IPC(命名管道),TCP,HTTP和MSMQ。因此,您必须建立安全策略以保护消息以及对呼叫进行身份验证和授权。 WCF安全本身就是一个很大的话题,但我们相信本文将为您提供如何快速了解WCF安全性的方法。 http://sanjevsharma.blogspot.com/2011/10/basics-of-wcf-security-part-i.html