【问题标题】:Silverlight WCF Authentication (Help going from WPF to Silverlight)Silverlight WCF 身份验证(帮助从 WPF 到 Silverlight)
【发布时间】:2009-05-19 22:23:17
【问题描述】:

我有一个现有的工作 WPF 应用程序,我在其中实现了我自己对后端 WCF 服务的自定义身份验证。当我从 WPF 访问此服务时,请按如下方式设置 ServiceProxy:

proxy.ClientCredentials.UserName.UserName = "test";
proxy.ClientCredentials.UserName.Password = "pass";

因为我使用的是 HTTPS,所以 uid/pwd 是安全的。

在 Silverlight 2 中,代理上没有 .ClientCredentials 对象。我发现的唯一选择是将两个字符串参数添加到 Uid/Pwd 的 EVERY WCF Exposed 方法中。这对我来说听起来很疯狂,一定有更好的方法,不是吗?

【问题讨论】:

    标签: wcf silverlight ssl silverlight-2.0 wcf-security


    【解决方案1】:

    不幸的是,Silverlight 2 仅支持 basicHttpBinding,这意味着它不支持 ClientCredentials。

    您有两个选择: 1.正如你提到的传递用户名并传递每个请求。 2. 使用 asp.net 身份验证并在您的服务中启用 asp.net 兼容模式。

    -- 我在下面提到的 N.B TransportSecurityWithMessageCredentials 似乎没有适用于 SL3,因此对于 SL2 和 SL3,只有上面的 2 个选项

    Silverlight 3 通过 TransportSecurityWithMessageCredentials 改进了这个故事,您可以在 Silverlight Web 服务团队博客上找到更多相关信息(可以链接到它,但显然因为我是新用户,所以不允许使用 0

    HTH

    【讨论】:

    • 您有通过 silverlight 2 使用 asp.net 身份验证的链接吗? Transport SecurityWithmessageCredentials 是否提供与 WPF 中的 ClientCredentials 大致相同的功能?
    • 对于 asp.net 兼容模式,基本上你需要做的就是用 [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] 装饰你的 wcf 类然后你可以访问 HttpContext 这意味着你可以访问用户属性由 asp.net 成员组成。我找到的有用链接是 blogs.msdn.com/brada/archive/2008/05/03/… 无法评论 TransportSecurityWithMessageCredentials 的相似之处,因为还没有机会使用它。 HTH
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多