在线等~急~C#解决NTLM验证

Antony110 2009-06-25 04:19:58
我写的代码如下
System.Net.CredentialCache MyCredentialCache = new System.Net.CredentialCache();
MyCredentialCache.Add(new System.Uri("http://intranet2.csmc.com.cn"), "NTLM", new System.Net.NetworkCredential(username, password, "csmc"));

好象还少部分代码,我需要知道是用什么类的什么方法来判断是否通过了NTLM验证
...全文
497 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Antony110 2009-06-30
  • 打赏
  • 举报
回复
还有人能帮忙解决一下吗?急救啊。。。
Antony110 2009-06-30
  • 打赏
  • 举报
回复
错了
是if (res.StatusCode == System.Net.HttpStatusCode.OK)
Antony110 2009-06-30
  • 打赏
  • 举报
回复
解决了
原来我没有给cookie赋值 而且提交的页面也不对
现在好了
代码如下:
try
{
System.Net.CredentialCache MyCredentialCache = new System.Net.CredentialCache();
MyCredentialCache.Add(new System.Uri("http://eip-hq.csmc.com.cn/dlflo/default.asp"), "NTLM", new System.Net.NetworkCredential("yinjun", "qw!1245", "csmc"));
System.Net.HttpWebRequest req;
req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("http://eip-hq.csmc.com.cn/dlflo/default.asp");
req.Method = "GET";
req.KeepAlive = true;
req.Credentials = MyCredentialCache;
//保存cookie
System.Net.CookieContainer cc = new System.Net.CookieContainer();
req.CookieContainer = cc;
System.Net.HttpWebResponse res;
res = (System.Net.HttpWebResponse)req.GetResponse();
if (res.StatusCode == System.Net.HttpStatusCode.Unauthorized)
{
//验证成功

}
}
catch (Exception ex)
{
//验证失败

}
再次感谢guilipan,分都给你:)
guilipan 2009-06-26
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/zh-cn/library/ms180890.aspx
Antony110 2009-06-26
  • 打赏
  • 举报
回复
我主要是需要验证用户
怎么去AD域验证啊?能否说的详细一点
程序园苑 2009-06-26
  • 打赏
  • 举报
回复
ding ding
wuhongxj 2009-06-26
  • 打赏
  • 举报
回复
学习。。
guilipan 2009-06-25
  • 打赏
  • 举报
回复
只要你的凭证信息是正确的,就不会抛异常,否则抛出异常。

如果你要验证用户,直接去AD域里面会更好
Antony110 2009-06-25
  • 打赏
  • 举报
回复
我照你的重新改为:
System.Net.CredentialCache MyCredentialCache = new System.Net.CredentialCache();
MyCredentialCache.Add(new System.Uri("http://developserver.csmc.com.cn"), "NTLM", new System.Net.NetworkCredential("zhouxd", "zxd_313829", "csmc"));

System.Net.HttpWebRequest req;
req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("http://developserver.csmc.com.cn");
req.Credentials = MyCredentialCache;
System.Net.HttpWebResponse res;
res = (System.Net.HttpWebResponse)req.GetResponse();
if (res.StatusCode == System.Net.HttpStatusCode.Unauthorized)
{

}
但是报错:远程服务器返回错误(403)禁止
请问这是什么原因啊?
Antony110 2009-06-25
  • 打赏
  • 举报
回复
我又加了System.Net.HttpWebRequest PUTRequest;
PUTRequest = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create("http://intranet2.csmc.com.cn");
PUTRequest.Credentials = MyCredentialCache;
PUTRequest.Method = "PUT";
还是没用啊
不知道怎么判别是否通过了验证
guilipan 2009-06-25
  • 打赏
  • 举报
回复
HttpStatusCode.OK表示请求成功
guilipan 2009-06-25
  • 打赏
  • 举报
回复


HttpWebRequest req = HttpWebRequest.Create("localhost") as HttpWebRequest;
req.Credential=MyCredentialCache;
HttpResponse res = req.GetResponse() as HttpWebResponse;
if(res.StatusCode == HttpStatusCode.Unauthorized)
{

}
Antony110 2009-06-25
  • 打赏
  • 举报
回复
能说具体点吗?
guilipan 2009-06-25
  • 打赏
  • 举报
回复
httpwebresponse返回401错误就是凭据无效了
haonanxxx 2009-06-25
  • 打赏
  • 举报
回复
不懂是什么?帮顶吧。
guilipan 2009-06-25
  • 打赏
  • 举报
回复
你把这个MyCredentialCache加到httpwebrequest.credential里面

110,579

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧