Messenger messenger = new Messenger();
if (messenger.Connected)
{
messenger.Disconnect();
}
messenger.Credentials = new Credentials("***@hotmail.com", "********");
messenger.Connect();
if (messenger.Connected)
{
foreach (Contact c in messenger.ContactList.All)
{
}
}
messenger.count是不为0的,但是到foreach循环时,会自动跳出,这是为什么啊!
希望使用
messenger.Connect();是个异步的过程,这里并不会等到连接上再执行下一步。你需要用它提供的回调方法,我给个例子:
void StartMessenger()
{
m_messenger = new Messenger();
m_messenger.Credentials = new Credentials("email","password");
m_messenger.Nameserver.SignedIn += Nameserver_SignedIn;
m_messenger.Connect();
}
// 登录成功之后触发的事件
void Nameserver_SignedIn(object sender, EventArgs e)
{
//你应当在这里去访问联系人信息
}
还有一点就是,你不要光下载dll文件,建议下载整个源码,里面包含一个完整的WinForm实现的MSN项目,具有很高的参考价值。否则你要自己去理解MSN协议(而且有好几个版本),是非常痛苦的。如果你没有源码就留个邮箱,我发给你。
cuicanxk@126.com
我是用asp.net开发的,也可以用吗?
@璀璨星空o(≧v≦)o~~: 也可以的。已发。
这是我改过之后的代码:
但是总跳到Nameserver_AuthenticationError这个方法里,可我的用户名和密码确实是正确的,而且同样的代码在winform里是正确的,而在asp.net里就出问题了,我不明白这是为什么,能帮着解决一下吗?
@璀璨星空o(≧v≦)o~~: 这个原因我也不是很清楚了,很诡异。你试试换成 messenger.Credentials = new Credentials(account, pass); 而不是一个个赋值试试。你可以把源码加到项目里,这样就可以调试 messager.Connect 这个函数里的代码了。