为silverlight应用程序保护我的互联网web服务



我有一个Silverlight应用程序,它不在浏览器中,驻留在客户端桌面上。我想让它调用internet上的web服务

我如何确定正在进行的呼叫是有效的而不是入侵者?

在我的脑海里,我想说我可以通过一个只有Silverlight应用程序知道的密码…但我肯定这行不通。

人们通常是怎么做这种事情的?

这取决于你想要保护你的web服务不受谁的攻击。我想这里的问题是你不希望你的用户使用其他应用程序来调用你的服务。

一个silverlight应用程序在客户端计算机上运行。silverlight应用程序所知道的一切都可以被最终用户或任何可以访问该计算机的人访问。也就是说,如果silverlight可以调用您的web服务,那么您的最终用户也可以使用其他工具进行相同的调用。您可以创建使此操作变得困难的方案,但这是可能的。

您可以使用身份验证SL + asp.net成员资格提供程序:

http://www.silverlightshow.net/items/Leveraging-the-ASP.NET-Membership-in-Silverlight.aspx

好运Braulio

我不确定我是否正确理解了这个问题,所以这个答案可能会被咬掉,如果它是抱歉。

Silverlight客户端对wcf服务的调用由clientaccessppolicy .xml验证。

allow-from部分,你设置从哪个托管域允许silverlight应用程序访问该服务,从托管在不同域的silverlight应用程序访问将导致跨域异常。但是很有可能恶意用户可以在silverlight客户端中更改主机域信息。

 <?xml version="1.0" encoding="utf-8"?>
    <access-policy>
      <cross-domain-access>
        <policy>
          <allow-from http-request-headers="SOAP">
            <domain uri="http://my.domain.com"/> <!-- allowed domains -->
          </allow-from>
          <grant-to>
            <resource path="/" include-subpaths="true"/>
          </grant-to>
        </policy>
      </cross-domain-access>
    </access-policy>

相关内容

最新更新