0

我有一个可以从页面上的 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);
    }
}

这很好,但现在任何人都可以打开浏览器并点击此服务。我只希望本地网站能够访问此服务。有没有内置的方法可以做到这一点,或者我必须设计一些巧妙的方案来阻止即兴表演?

4

1 回答 1

0

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

如果您已经使用 wcf 服务本身执行此操作,则可以添加您的行为以进行 ip 过滤,例如,请参阅帖子和帖子。

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

于 2013-04-17T02:27:58.197 回答