2009-08-26 94 views
1

我向客戶演示了我的WPF應用程序,他問我是否有LDAP或可以與Active Directory(AD)集成。WPF應用程序的LDAP(AD)集成

我的應用程序擁有自己的內置用戶安全和數據訪問安全性。我使用我的安全框架對屏幕和數據訪問進行身份驗證和授予權限。客戶問我是否可以添加或與活動目錄集成。他需要用戶記住他的Windows密碼,而不是我的應用程序。

我可以實現Active Directory邏輯,但必須修改我的應用程序以將Active Directory用戶與我的應用程序的用戶關聯,因此當AD用戶登錄後,由於本地用戶需要進行身份驗證和關聯,與他的安全和數據訪問設置相關聯。這是要走的路嗎?

我將爲此使用.NET 3.5類。這將意味着我的應用程序的管理員應該轉到用戶屏幕並將本地用戶與LDAP用戶關聯。

回答

8

不,我不認爲你的建議聽起來像是正確的做法。

相反,你應該一個可插拔的架構(例如IPrincipal)提供安全性,然後有一些方法你的應用程序可以被配置爲使用自己的安全框架,或者乾脆WindowsPrincipal(從IPrincipal派生):

例如,您可以擁有指定要使用哪個安全提供程序的配置設置。如果配置爲使用您自己的系統,它將要求用戶輸入憑據並使用基於您的系統的實例填充Thread.CurrentPrincipal

如果配置爲使用AD,它只是默默地將Thread.CurrentPrincipal設置爲WindowsIdentity.GetCurrent()(包裝在WindowsPrincipal中)。

看看ASP.NET或WCF如何處理安全問題 - 基本上他們是這麼做的。

+0

+1爲可插拔架構!這是要保持靈活性的方法 – 2009-08-26 11:38:22

+0

其實我開發的安全框架是可插拔的,並且是AOP。如果我從IPrincipal繼承,我有我的接口(框架化) – abmv 2009-08-26 11:38:33

+1

@abmv:IPrincipal只是標準方式在.NET中對許多安全問題進行了建模,所以如果你採用它,你會從本質上獲得許多其他的東西 - 例如AD集成,它只是由WindowsPrincipal提供的開箱即用。 – 2009-08-26 11:43:35