我有一个安全的METRO 2.1 Web服务,并且我想开发一个可以使用它的.NET(3.5)客户端。我已经succeded如果WS是不安全的,但一旦我得到开发一个使用安全的METRO 2.1 Web服务的.NET客户端
安全机制是Username Authentication with Symmetric Key
和它的使用Development Defaults
如何设置安全的.NET?我一直在阅读METRO指南,但是我只发现指向这些例子的链接不完整,指南并未让我知道。我成功地生成了代理类svcutil
,但我不知道如何使用它。
SvcUtil工具警告:
警告1个自定义工具警告:安全策略是进口的端点。安全策略包含无法在Windows Communication Foundation配置中表示的要求。查找有关生成的配置文件中所需的SecurityBindingElement参数的注释。用代码创建正确的绑定元素。配置文件中的绑定配置不安全。
警告2自定义工具警告:wsam:寻址元素需要wsp:Policy子元素,但没有子元素。
编辑
我有非常接近解决这个(我认为)。我出口默认的GlassFish证书与keytool.exe
:
keytool -exportcert -alias xws-security-server -storepass changeit -keystore keystore.jks -file server.cer
keytool -printcert -file server.cer //This line shows it's content
我用server.cer
证书在客户端:
KDTreeWSClient wsClient = new KDTreeWSClient();
X509Certificate2 server_cert = new X509Certificate2("FullPathToCertificate/server.cer", "changeit");
wsClient.ClientCredentials.ServiceCertificate.DefaultCertificate = server_cert;
wsClient.ClientCredentials.UserName.UserName = "wsitUser"; //Default GF username
wsClient.ClientCredentials.UserName.Password = "changeit"; //Default GF password
问题这导致MessageSecurityException
,因为端点的预期DNS-身份localhost
,但终端有xwssecurityserver
。我可以手动将它设置为localhost
/xwssecurityserver
吗?
任何帮助,将不胜感激! 在此先感谢, 丹尼尔
这里是一个链接似乎讨论类似的情况:http:///forums.asp.net/t/1277956.aspx – 2011-04-06 19:04:38