我已經構建了一個wcf Web服務,該服務只是將MS Dynamics SQL數據提供給CRM託管的Silverlight應用程序。目前,Web服務託管在IIS中,並且只能通過HTTPS使用,因此消息的內容是安全的。我現在準備實現與登錄到Silverlight客戶端應用程序的人員有關的下一級安全性。我想將這些信息傳遞給Web服務,然後在創建SQL Server連接對象時使用它。結果將是MS Dynamics數據庫將僅返回授權連接用戶查看的數據。WCF Web服務需要訪問用戶名和密碼信息
此模型與標準模型不同,該模型包含對給定用戶進行身份驗證以訪問Web服務。相反,在我的模型中,每個人都有權訪問Web服務,並且SQL查詢的結果基於給定用戶的用戶名和密碼。
For Clarification: Silverlight應用程序在用戶登錄到應用程序時收集用戶名和密碼。這是Web服務連接到SQL Server數據庫時最終需要由Web服務使用的信息。所以我的目標是讓Silverlight應用程序將用戶名和密碼傳遞給Web服務,以便Web服務可以在創建Connection對象時檢索並使用它。
我正在考慮的事情很簡單,只需將用戶名和密碼添加到每個Web服務請求。不過,我寧願能夠使用標準的方法來傳遞用戶憑據,但我似乎無法找到任何方法來獲得密碼。用戶名可通過OperationContext.Current.ServiceSecurityContext.PrimaryIdentity.Name訪問。
任何想法?
你應該明確你想傳遞的用戶名和密碼。是否僅限於Windows帳戶訪問CRM?域用戶在Intranet內部訪問Silverlight應用程序嗎?用戶是否在您的服務中通過他的域帳戶進行身份驗證? – 2011-12-19 18:27:14
澄清 - Bob Jones已登錄到CRM。我需要在Web服務中使用Bob Jones用戶名和密碼。 Web Service託管在雲中,然後使用用戶名和密碼創建與另一臺服務器上託管的數據庫的連接。目前,Web服務使用默認的用戶名和密碼連接到數據庫,而我想用Bob Jones代替。 – 2011-12-19 20:15:47
Bob Jones是Windows帳號?順便說一句。在操作處理過程中,沒有安全機制的構建會獲得密碼。你需要使用SQL憑據或Windows憑據創建連接嗎? – 2011-12-19 20:36:22