我想开发一个托管在iis服务器上的wcf服务,并使用web上的silverlight应用程序(使用此wcf服务的SL app)。我也希望对从silverlight应用程序请求的用户使用用户名密码验证和授权。
我想知道我必须为此目的使用wsHttpBinding或basicHttpBinding吗? 我无法在silverlight上使用wsHttpBinding,当使用basicHttpBinding时,我无法为此绑定创建身份验证和授权
我也使用.net4(wcf 4和silverlight 4)
请帮帮我 谢谢你的回答
答案 0 :(得分:1)
我可能会离开这里,但我刚刚开始了一个类似的项目。我的第一个想法是使用basicHttpBinding。然后,您的Web服务将接受用户名和密码作为任何方法调用的参数(用户名/密码可以存储在会话或设置文件中)。在后端,您将基于每个呼叫检查用户的凭据。使用此方法意味着您需要使用Https,因此需要设置绑定属性
<security mode="Transport">
希望这有帮助!
答案 1 :(得分:1)
BasicHttpBinding
不支持用于身份验证的邮件级安全性。可以实现传输级身份验证,但这需要您依赖Windows身份验证,因此可能不是跨平台的
点击此处查看更多信息 - &gt; http://msdn.microsoft.com/en-us/library/dd744835(v=vs.95).aspx
我个人建议您考虑调查通过Silverlight BrowserHttp堆栈访问的REST样式WCF服务...因此,如果用户已通过ASP.NET对您的服务器应用程序进行了身份验证(我假设您的Silverlight应用程序是在ASP中托管的。 NET / IIS)Silverlight客户端应用程序将使用相同的身份验证凭据(通过传递相同的ASP.NET身份验证cookie及其请求)。这比试图与BasicHttpBinding
搏斗更适合我(并且不那么繁琐)。这种方法确实意味着您放弃使用“添加服务引用...”。我建议this blog post了解有关此方法的更多信息。