2010-08-26 68 views
2

我读过这么多的博客文章和文章,我的眼睛变得模糊。我还没有找到我需要的东西(或者我不明白我在做什么,这很可能)。如何限制对特定用户帐户的WCF数据服务访问?

我们有一个我们想限制访问的WCF数据服务。我们希望将Web客户端放在应用程序池中,然后只有应用程序池帐户应该能够使用WCF数据服务。

如果有人直接从浏览器或其他应用程序点击WCF服务,他们应该无法访问数据。

我该如何设置?我试图模仿,但我似乎无法得到那个工作。

保护WFC数据服务似乎太困难了,但也许我只是没有正确地看待它。任何帮助,将不胜感激。谢谢。

回答

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应用程序一样受到限制,但我没有真正看过它。

+0

mmm ...没有意识到这个问题太老了......以上内容涉及WCF数据服务在这个时间点的最新版本=) – Perry 2011-05-09 08:24:10

+0

感谢您的答案 - 即使问题是这样的旧。我认为你的解决方案适用于我们的案例。我当时专注于提供基于配置的解决方案,但我认为使用OnStartProcessingRequest将是一种更简单的方法。 – camainc 2011-05-09 16:40:15

相关问题