我正在创建一个WPF应用程序,所有用户都必须通过该应用程序对Active Directory进行身份验证。 - Clientside,我正在使用客户端应用程序服务。 - 服务器端,我有一个带有AspNetActiveDirectoryMembershipProvider的asp.net Web应用程序。
一切都按预期工作。
然而,有一个问题。 一些wpf应用程序用户使用他们的Windows登录到域,其他人则没有。因此,对于登录到域(A组)的用户,我不想在应用程序启动时询问他们的用户名/密码。 其他用户(组B)当然必须在应用程序启动时提供其Active Directory用户名/密码。 该组B只执行Membership.ValidateUser(userName,password),最终在AspNetActiveDirectoryMembershipProvider中进行身份验证。
但是,如何检查A组是否已成功通过AspNetActiveDirectoryMembershipProvider进行身份验证,而无需 问他们的用户名/密码?
谢谢, 柯恩
答案 0 :(得分:0)
应用程序服务使用http传输。没有令牌的概念(当你登录到你的机器/域时你得到的东西)所以除非你想完全重写一个应用程序服务实现(不是......不......不推荐),所以无法登录无论当前的身份验证。
但这引出了一个问题:如果他们登录到域,为什么要使用应用程序服务?
在您的应用中,您可以首先检查当前身份是否属于相关域以及是否经过身份验证。如果是这样,继续申请。如果没有,请回到应用程序服务。
这种混合型并不是非常复杂,但需要您进行一些规划和编码。