從Web服務模擬客戶端的優點和缺點是什麼? 及其優勢之一是審計,如何使用模擬審計比從應用程序到Web服務傳遞身份對象更好?來自Web服務的客戶端模擬?
0
A
回答
2
模擬的目的是將服務的訪問擴展到可能不受限制的資源。它通過考慮請求者的權利來做到這一點。模擬使服務在必須確定是否允許訪問特定資源時承擔請求者的安全上下文。
實現模擬的最簡單方法是聲明性地在服務的方法上。 OperationBehavior屬性包含一個名爲Impersonation的屬性。該屬性可以設置爲「必需」或「允許」。
[OperationBehavior(Impersonation = ImpersonationOption.Allowed)]
public bool Update()
{
return true;
}
如果模擬屬性設置爲允許,客戶端憑證可以流動到服務。如果將模擬設置爲必需,則該服務必須承擔客戶端的憑據。
有些時候並非所有的方法都可能需要模仿。例如,只有在訪問文件時才需要模擬。爲了實現這一點,可以通過使用WindowsImpersonationContext類來強制實施模擬。
要開始,您必須檢索與當前請求關聯的Windows標識。這可通過ServiceSecurityContext.Current對象獲得。如果WindowsIdentity屬性不爲空(記住模擬需要Windows身份),則可以在身份上調用Impersonate方法。下面的代碼演示了這種方法:
WindowsIdentity callerIdentity =
ServiceSecurityContext.Current.WindowsIdentity;
if (callerIdentity == null)
throw new InvalidOperationException(
"The caller cannot be mapped to a WindowsIdentity");
using (WindowsImpersonationContext context = callerIdentity.Impersonate())
{
// Access a file as the caller.
}
證明迄今上的方法,通過方法的基礎操作兩個模擬技術。也可以爲服務中的所有方法啓用模擬。您可以通過將ServiceAuthorization行爲上的ImpersonateCallerForAllOperations屬性設置爲true來執行此操作。你可以這樣做,如下面的代碼示例所示:
ServiceHost serviceHost = new ServiceHost(typeof(TestService));
ServiceAuthorizationBehavior behavior =
serviceHost.Description.Behaviors.Find<ServiceAuthorizationBehavior>();
behavior.ImpersonateCallerForAllOperations = true;
相關問題
- 1. 來自C#Web服務的Java Web服務客戶端中的數據集
- 2. 模擬多個客戶端到Web服務器
- 3. Java Web服務客戶端
- 4. Soap Web服務客戶端
- 5. Web服務客戶端Java
- 6. Python web服務客戶端
- 7. Java Web服務客戶端:
- 8. Web服務 - 客戶端類
- 9. java web服務客戶端
- 10. Web服務wcfstorm客戶端
- 11. Android客戶端Web服務
- 12. CodeIgniter Web服務客戶端
- 13. Groovy Web服務客戶端
- 14. 來自Axis2 Web服務的OMElement的C#客戶端
- 15. 來自.net客戶端的java web服務
- 16. Web服務和來自同一客戶端的多個請求
- 17. 單元測試來自NetBeans的Web服務客戶端
- 18. Web服務客戶端和服務器
- 19. Web服務客戶端無法找到Web服務的端點
- 20. PHP:SOAP Web服務客戶端web服務ASP.NET服務器
- 21. Web服務/客戶端事務屬性
- 22. 來自客戶端的web api認證
- 23. Axis Web服務客戶端respnose的HashMap
- 24. Web服務客戶端的SSL證書
- 25. Web服務客戶端的問題
- 26. C++的Web服務客戶端庫
- 27. Java中的Web服務客戶端
- 28. REST Web服務的JavaScript/jQuery客戶端
- 29. .NET的Web服務和PHP客戶端
- 30. 創建Web服務客戶端的NoSuchMethodError
優點/缺點? – WhoIsNinja 2011-02-15 16:08:42