2010-08-26 121 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

相關問題