繁体   English   中英

使用Windows身份验证的WPF应用程序

[英]WPF application with Windows authentication

我有一个简单的wpf客户端(几个文本框),可以将一些数据上传到Web服务。 我想使用Windows身份验证来使用我的应用程序。

我正在检查App.xaml的OnStartup,无论用户是否经过身份验证。 我的问题是关于Thread.CurrentPrincipal.Identity.IsAuthenticated的含义是什么。

我不希望我的应用程序在网络外部使用,因为它连接到Web服务并上传数据。 但我的假设是,只要您从任何Windows网络中运行此应用程序,上述属性将始终返回true?

那么如何确定应用程序是否从我的网络内部运行。 我不认为检查域名或角色名称是否有任何不同,因为我总是可以设置域名并将其命名为我想要的任何名称。 我不想提示用户输入任何类型的用户名或密码。

如何检查用户对特定AD的身份(AD可能不是公开可用的)。 基本上,应用程序只能在我的本地网络或VPN上运行。

var context = new PrincipalContext(ContextType.Domain, "DOMAINNAME");
var result = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, userName);

如果结果为null,则AD域中不存在该用户。

您还可以使用DirectorySearcher类根据筛选条件查询AD。 仅当您想要检索有关用户的其他详细信息(如联系人,电子邮件地址等)时,此功能才更有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM