2009-08-26 91 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