保护我的互联网Web服务以获得Silverlight应用程序

时间:2011-11-11 20:27:43

标签: silverlight security silverlight-4.0

我有一个不在浏览器中的Silverlight应用程序,它位于客户端桌面上。我想把它叫做我在互联网上的网络服务。

我怎样才能确定正在进行的通话是否有效而不是入侵者?

在我的脑海中,我想说我只能传递一个只有Silverlight应用程序知道的密码......但我相信它不起作用。

人们通常如何做这类事情?

3 个答案:

答案 0 :(得分:1)

这取决于您实际想要保护您的Web服务的人。我想这里的问题是您不希望您的用户使用其他应用程序来呼叫您的服务。

Silverlight应用程序在客户端计算机上运行。 Silverlight应用程序知道的所有内容也可供最终用户或有权访问该计算机的任何其他人访问。也就是说,如果silverlight可以调用您的Web服务,那么您的最终用户也可以使用其他工具进行相同的调用。您可以创建难以这样做的方案,但这是可能的。

答案 1 :(得分:0)

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

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

祝你好运   布劳略

答案 2 :(得分:0)

我不确定我是否正确理解了这个问题,所以这个答案可能会有点不对,如果是的话就很抱歉。

通过clientaccesspolicy.xml验证对wcf服务的Silverlight客户端调用。

在该文件的 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>