【问题标题】:Is it possible to pass network credentials to a web service from Silverlight UI?是否可以从 Silverlight UI 将网络凭据传递给 Web 服务?
【发布时间】:2010-01-18 07:30:40
【问题描述】:

这个问题在 Silverlight 3.0 中特别明显:

这是我创建的网络凭据对象:

System.Net.NetworkCredential credential = new System.Net.NetworkCredential("mohammed.haroon", "abcdefg123");

我的网络服务是 Service1

Service1 WebService = new Service1();

WebService.ClientCredentials = credential;

WebService.ExecuteSomeMethodAsync("xyz", "abc");
            WebService.ExecuteSomeMethodAsyncCompleted += WebService_ExecuteSomeMethodAsyncCompleted;

我无法将凭据发送到经过 Windows 身份验证的 Web 服务,因为无法将网络凭据分配给特定于 Silverlight 3.0 中的 Web 服务 ClientCredentials

有什么变通的方法吗?

【问题讨论】:

  • 如果您指明 Web 服务是否由您控制以及它是否旨在为其他类型的客户提供服务,将会有所帮助

标签: silverlight silverlight-3.0


【解决方案1】:

试试这样:-

Service1 WebService = new Service1();

WebService.ClientCredentials.UserName.UserName = "mohammed.haroon";

WebService.ClientCredentials.UserName.Password = "abcdefg123";

WebService.ExecuteSomeMethodAsync("xyz", "abc");
            WebService.ExecuteSomeMethodAsyncCompleted += WebService_ExecuteSomeMethodAsyncCompleted;

ClientCredentials 属性是只读的,但它返回一个 ClientCredentials 的实例,它只有一个(与其完整的 .NET 3.5 对应部分不同)只读属性 UserName,类型为 UserNamePasswordClientCredential。这又具有UserNamePassword 的读/写属性。

【讨论】:

    【解决方案2】:

    我知道 .Net RIA 服务是处理这类事情的一个很好的框架(例如,从 silverlight 控件到 WCF Web 服务的身份验证)。您可以在 silverlight.net 找到更多相关信息,而常见的罪魁祸首如 Scott GuthrieTim Heuer 在他们的博客上有很多实例。

    【讨论】:

    • 这当然假设 OP 可以修改 Web 服务。
    猜你喜欢
    • 2012-01-16
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多