如何通过referer限制对WCF服务的访问?

时间:2013-04-16 19:29:21

标签: jquery ajax wcf webget

我有一个可以从页面上的jQuery访问的服务,它看起来像这样:

[ServiceContract(Namespace = "")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
public class FacadeService
{
    ServiceHelper serviceHelper = new ServiceHelper();

    [OperationContract]
    [WebGet(ResponseFormat=WebMessageFormat.Json)]
    public String GetAllProducts()
    {
        Uri uri = new Uri("http://localhost:12345/api/Products");

        return serviceHelper.SubmitGetRequestToService(uri);
    }
}

这很棒,但现在任何人都可以打开浏览器并点击此服务。我只希望本地网站能够访问此服务。有没有内置的方法来做到这一点,还是我必须设计一些聪明的方案来阻止riff-raff?

1 个答案:

答案 0 :(得分:0)

如果您在IIS上托管了您的servin,可能最简单的方法是通过IIS工具限制服务URL访问。

如果您使用wcf服务本身,可以添加ip过滤的行为,例如,请参阅thisthis帖子。

但我仍然认为通过标准的IIS工具完成它会更容易。