现在的位置: 首页 > 综合 > 正文

Applied Windows Live Custom Domains (3) – SOAP Calls to the Web Service

2012年12月15日 ⁄ 综合 ⁄ 共 2106字 ⁄ 字号 评论关闭

如果您想自己血访问Windows Live Custom Domains Web服务的代码,那么需要看一下下面的几个方法。

GetLoginUrl

public string GetLoginUrl(string memberName)
调用:GetLoginUrl(fanweixiao@hotmail.com)
返回:为了使用我们的服务的Passport的登陆URL

GetLoginDataTemplate

public string GetLoginDataTemplate()
获取用以获得Passport认证票据(Passport authentication ticket)的数据模版(data template)。
注意:该方法调用后我们必须使用域管理员的登陆名和密码来替换模版中的值,然后再去调用Passport,因为这个模版是不会改变的,我们只需要在每次操作(session)调用它一次。

VerifyAuthData

public bool VerifyAuthData(string authData)
将GetLoginDataTemplate()方法返回的修改后的数据发送到GetLoginUrl()返回的URL上来验证登陆用户,如果是有效的域管理员将返回true。
上面这三个方法可以创建Passport的票据,我们只需要登陆一次,之后直接可以进行添加、删除、导入和弃用(evict)的操作。该票据过期时间至少为1小时。

AddUser

public void AddUser(string name, string password, bool resetPassword, string authData)
需要注意的是name要是vc@onlyvc.org这种样式的,密码是用来登陆hotmail的。resetPassword如果为true的话那么新用户第一次登陆到hotmail时需要修改密码。
需要注意的是我们在调用该方法前需要先调用西面的GetUserState方法来判断该用户名是否可以被添加。

GetUserState

public enum GetUserState(string name, string authData)

返回该用户名所对应用户的状态。它的几个返回值:
0:表明有效,可以被注册。
1:被屏蔽,该用户名存在非法字符
2:该用户已经被注册了。
3:该用户曾经是一个Passport账户并且与Hotmail收件箱想绑定,在过去的30天内该账户被删除了。基于Hotmail的机制,这些账户不能在30天内被再次应用的。这种情况经常出现与如果一个用户名使用过Messenger的离线消息收件箱(OIM inbox,Offline Instant Messenger),OIM使用hotmail存储离线消息,这个特性被新的Messenger的Live服务所广泛使用。
4:已经存在EASI账户(EASI在上一篇文章中有介绍)。如果我们想创建新账户可以先弃用该账户。

DeleteUser

public void DeleteUser(string name, string authData)
这个方法要谨慎使用,因为被删除的用户不但丢失所有的email还会被关30天禁闭才能再被使用。下一次这个用户登陆的时候它将被告知需要修改它的Passport账户名称,与我们的域也没有什么关系了。

EnumUsers

public string[] EnumUsers(string domainName, string start, int num, string authData)

start指明了返回列表的开始值,为""时返回所有用户名,以字符串数组形式存放,num表示了返回的个数,最大允许值是500,所以如果该参数值为500以上的话可以返回所有用户。

ImportUser

public void ImportUser(string name, string authData)

导入一个已经在Passport上注册的用户。参考上一篇blog的描述可得知该方法的目的。这个方法的调用可能失败,情况如下:

  1. 用户不存在与Passport中
  2. 用户已经在该域的管理范围之内了(已经被导入或添加了)

EvictSquatter

public void EvictSquatter(string name, string authData)

也是在上一篇blog的相关介绍,同ImportUser一样也可能失败,原因也一样。

EnumDomains

public DomainState[] EnumDomains(string authData)
返回所有该管理员管理的域信息。
DomainState[]由下面三部分组成:

  1. Domain name 域名(string)
  2. Active state 活动状态(boolean)
  3. MX record MX记录 (string)

如果一个域名有多个管理员,MX记录将显示该登陆用户所这设置的。

GetDomainState

public DomainState[] GetDomainState(string domainName, string authData)
获得一个域的状态信息。DomainState[]的组成同上

To Be Continued ...

抱歉!评论已关闭.