我读了很多博文和文章,我的眼睛越来越模糊了。我还没有找到我需要的东西(或者我只是不明白我在做什么,最有可能)。
我们想要限制访问的WCF数据服务。我们希望将Web客户端放在应用程序池中,然后只有应用程序池帐户才能使用WCF数据服务。
如果有人直接从浏览器或其他应用程序点击WCF服务,他们就无法访问数据。
如何设置?我试过冒充,但我似乎无法让它发挥作用。
保护WFC数据服务似乎太难了,但也许我只是没有正确地看待它。任何帮助,将不胜感激。感谢。
答案 0 :(得分:3)
考虑阅读以下内容; http://msdn.microsoft.com/en-us/library/dd728284.aspx
我会考虑类似下面的代码。每次调用WCF数据服务时都会发生OnStartProcessingRequest;
Protected Overrides Sub OnStartProcessingRequest(ByVal args As System.Data.Services.ProcessRequestArgs)
MyBase.OnStartProcessingRequest(args)
If HttpContext.Current.User.Identity.Name.ToLower <> "UserName".ToLower Then
Throw New DataServiceException("Services restricted")
End If
End Sub
我确信还有其他方法可以做到这一点。如果它在IIS中托管,我猜它可能会受到与任何其他asp.net Web应用程序相同的限制,但我还没有真正看过它。