![](/img/trans.png)
[英]How do you get Windows user domain/username with C# Razor on IIS 10?
[英]How do you get user info from a company's domain/network settings in C#?
有人告诉我,用户信息(例如姓名,地址,电话等)存储在网络上(显然只有在有人提供了该信息的情况下)。 这是Outlook在网络上搜索用户时获得的信息(Outlook用来填充联系人卡的信息)。 这显然很有效,因为我可以搜索公司网络中的任何人,并且可以为我们网络上的世界各地的人们获得结果。
我正在研究的程序是我们公司内部的程序,我的任务之一是使用该信息预先填充表格。
我的问题是,如何获得此信息? 它存放在哪里? 我用什么物体来得到它?
编辑:我对此有点一般。 我真正需要的是当前用户的信息(“当前”是登录到计算机并使用我的程序的任何人)。 最好的方法是什么?
要从Active Directory中读取,所需的类位于System.DirectoryServices.dll中。 重要的是DirectorySearcher和DirectoryEntry。 查看此其他问题的前两个答案,以获取更多代码: 如何在C#中获取当前用户的Active Directory详细信息
更新:要获取当前用户的信息,请使用其登录名,然后在Active Directory中搜索具有相同用户ID的用户。 像这样的东西:
adSearch.Filter =“(sAMAccountName =” + Environment.UserName +“)”;
(在ASP.Net中,您将在其他位置获得用户名。)
如果您使用的是Active Directory,则可以在给定域和用户名的情况下从那里查询该信息。 它基本上是一个LDAP存储,但是在网络上有很多关于如何实现它的信息。
这是另一个问题,专门询问如何从Active Directory中检索此信息:
如何在C#中获取当前用户的Active Directory详细信息
在桌面应用程序中,要获取当前登录用户的Windows用户名,可以使用Environment.UserName
。
David和Neil Barnwell提供的答案还有另外一个提示:
您可以使用HttpContext.Current.User.Identity.Name
获取其ID。
如果要从程序集或其他后端代码中使用它,请确保using System.Web
添加。
要回答您的问题“是否有办法获取当前的域控制器...”,对我有所帮助的一种方法是使用nltest
命令[1],如下所示:
C:\>nltest /dsgetdc:yourdomain.com
它应该输出各种有用的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.