【问题标题】:use wsHttpBinding or basicHttpBinding for silverlight app, which one?为 silverlight 应用程序使用 wsHttpBinding 或 basicHttpBinding,哪一个?
【发布时间】:2011-07-15 19:12:28
【问题描述】:

我想开发一个托管在 iis 服务器上的 wcf 服务,并与 web 上的 silverlight 应用程序一起使用(此 wcf 服务中的 SL 应用程序使用)。我还想为从 silverlight 应用程序请求的用户使用用户名密码身份验证和授权。

我想知道我必须为此使用 wsHttpBinding 或 basicHttpBinding 吗? 我无法在 silverlight 上使用 wsHttpBinding,当使用 basicHttpBinding 时,我无法为此绑定创建身份验证和授权

我也使用 .net4(wcf 4 和 silverlight 4)

请帮帮我 谢谢你的回答

【问题讨论】:

    标签: silverlight wcf binding


    【解决方案1】:

    我可能离这里很远,但我刚刚开始了一个类似的项目。我的第一个想法是使用 basicHttpBinding。然后,您的 Web 服务将接受用户名和密码作为任何方法调用的参数(用户名/密码可以存储在会话或设置文件中)。在后端,您将在每次调用的基础上检查用户的凭据。使用这种方法意味着你会想要使用 Https,因此需要你设置绑定属性

    <security mode="Transport">
    

    希望这会有所帮助!

    【讨论】:

    • 感谢亲爱的艾伦。我已经想到了这种方法。但在您看来,这个解决方案是一种工程师方法,并且支持安全性?
    【解决方案2】:

    BasicHttpBinding 不支持用于身份验证的消息级安全性。可以实现传输级身份验证,但这需要您依赖 Windows 身份验证,因此可能不是跨平台的

    点击这里了解更多信息 -> http://msdn.microsoft.com/en-us/library/dd744835(v=vs.95).aspx

    我个人建议您考虑调查通过 Silverlight BrowserHttp 堆栈访问的 REST 样式 WCF 服务...因此,如果用户已通过 ASP.NET 对您的服务器应用程序进行身份验证(我假设您的 Silverlight 应用程序托管在 ASP.NET 中)。 NET/IIS)Silverlight 客户端应用程序将使用相同的身份验证凭据(通过将相同的 ASP.NET 身份验证 cookie 与其请求一起传递)。这对我来说比尝试与BasicHttpBinding 搏斗更好(并且不那么繁琐)。但是,这种方法确实意味着您放弃使用“添加服务参考...”。我推荐this blog post 以获取有关此方法的更多信息。

    【讨论】:

    • 感谢亲爱的詹姆斯韦伯斯特。我考虑您的解决方案并查看您为我建议的链接。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2018-07-11
    • 2011-01-07
    • 2011-02-08
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 2021-02-08
    相关资源
    最近更新 更多