以C#编程方式获取无线域名

时间:2012-02-26 17:33:58

标签: c# network-programming httpwebrequest

我正在尝试在代理身份验证背后的网络下发送HttpWebRequest

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.Proxy = new WebProxy("192.168.0.2", 8080);
req.UserAgent = "Mozilla/5.0";
req.Proxy.Credentials =new NetworkCredential("username","password","DOMAINNAME");

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream());

现在我希望获得与其连接的DOMAINNAME无线网络。那么,我如何获得使用192.168.0.2主机名指定的无线网络域名?

感谢您的进步:)

2 个答案:

答案 0 :(得分:1)

查看Win32_NetworkAdapterConfiguration管理类,该类公开DNSDomain属性,这可能就是您想要的。查看访问ManagementClass对象的类的System.Management命名空间。

例如,此代码段将为您提供一组对象,一个用于当前计算机上的每个网络适配器,并打印其DNS域属性。

var mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
foreach (var networkAdapter in mc.GetInstances())
{
    Console.WriteLine(networkAdapter.Properties["DNSDomain"].Value);
}

答案 1 :(得分:0)

你想做的事情是行不通的。您所使用的域名是凭据的一部分,用于通过身份验证代理。因此,您需要从获得用户名和密码的相同位置(即可能由用户输入)获取它。从无线网络(甚至机器)获取域并不能保证它与所用用户所属的域相匹配。

举个例子:

  

Contoso Ltd 有一个名为 contoso.local 的域名(其中包含W2k别名 CONTOSO )。
  他们的用户以 CONTOSO \ bob.smith 的身份登录到域   他们的无线网络的SSID是 ContosoLtd

     

用于代理凭据的正确域名是 CONTOSO

当您要求使用用户名和密码作为凭据时,也要求输入域名。