如何将对WCF数据服务的访问限制为特定用户帐户?

时间:2010-08-26 21:10:39

标签: wcf-data-services

我读了很多博文和文章,我的眼睛越来越模糊了。我还没有找到我需要的东西(或者我只是不明白我在做什么,最有可能)。

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

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

如何设置?我试过冒充,但我似乎无法让它发挥作用。

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

1 个答案:

答案 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应用程序相同的限制,但我还没有真正看过它。