2011-07-22 33 views
0

我有一個SOAP - > Web服務結構,使用C#。我有IIS - Windows身份驗證打開,所以我將DefaultNetworkCredentials添加到我的服務實例中的ClientCredentials。我能夠使用這些憑據訪問Web服務。這不是問題。在C#中使用憑據訪問控制

我想限制訪問Web服務中包含的某些信息,具體取決於嘗試訪問此服務的用戶。我不知道如何通過將憑據作爲參數或通過任何其他方式傳遞從憑證獲取任何用戶信息。任何的意見都將會有幫助。

非常感謝!

回答

2

很確定Windows身份驗證將確定他們是否可以訪問IIS中的實際.asmx文件。

您可以在Web服務代碼中使用HttpContext.Current.User來確定當前登錄的用戶的名稱(然後驗證從那裏執行操作的權限)。

+0

對不起Aaron的困惑。是的,你說的是完美的,但是我需要知道用戶是誰在Web服務端。我相信將用戶名作爲參數傳遞爲純文本或甚至加密數據很容易被欺騙,從而利用我的Web服務。 無論如何,你知道這可以做到沒有欺騙用戶名的可能性嗎?還是有更優雅的解決方案? 注意:我沒有網絡或安全背景。 – Tizz

+0

編輯我的答案是更簡潔。如果安裝正確,HttpContext.Current.User與Windows身份驗證一起應該不是可僞裝的。您需要在web.config或IIS中禁用任何其他身份驗證方法。 –