我的计算机位于域(Active Directory)中,我需要动态获取域名.我在互联网上找到了以下代码:
SelectQuery query = new SelectQuery("Win32_ComputerSystem");
using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(query))
{
foreach (ManagementObject mo in searcher.Get())
{
if ((bool)mo["partofdomain"])
{
this.Domain = mo["domain"].ToString();
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
它完全按照我的意愿工作,并返回我想要的域名(当我以管理员身份登录时).如果用户不是域管理员,我有一个Access denied例外.
有没有人知道如何使用非域管理员用户获取域名?
注意:我在Internet上找到了这个解决方案,System.Environment.UserDomainName;但它只给了我一部分域名.
即我的域名是:something.domain.com
和UserDomainName唯一的回报something.
我有2个对象:
public class ClassA
{
public int Id
public string name;
public ClassB myObjectB;
}
public class ClassB
{
public int Id
public string name
}
Run Code Online (Sandbox Code Playgroud)
有<ClassA> <ClassB>的2个列表List1中的一些项目与Id上的项目匹配List2上的项目...我想设置objectB foreach项目...
foreach(ClassA item in List1)
{
ClassB obj = (from b in List2 where b.Id == item.Id select b).SingleOrDefault()
if(obj != null)
{
item.myObjectB = obj;
////////break; <- ignore this
}
}
Run Code Online (Sandbox Code Playgroud)
这个解决方案适合我,但我只是想知道是否有更好的方法来做到这一点,而不是Foreach
谢谢大家的帮助!!!