SharePoint Web Service的身份验证
2010-04-12 23:54
375 查看
SharePoint内置了一套相对比较完整的WebServices提供给开发者,这样就可以在客户端、跨平台的程序中读取甚至修改SharePoint中的内容。不过当SharePoint网站不允许匿名访问的时候,调用WebServices自然也需要提供身份验证。
SharePoint身份验证最常用的是Windows验证(WindowsAuthentication)和表单验证(FormAuthentication)两种。
Windows验证即使用Windows账号或者AD账号来进行身份验证,对于这种验证方式,在SharePointSDK中已经给出了如何提供身份验证的方法,假设我们使用最常用的lists.asmx来获取SharePoint列表数据,添加的Web引用的命名空间是spwsList:
使用当前帐户身份: 1 spwsList.Lists wsLists = new spwsList.Lists();
2 wsLists.Credentials = CredentialCache.DefaultCredential;
3 Console.WriteLine(wsLists.GetListCollection().OuterXml);
使用指定帐户: 1 spwsList.Lists wsLists = new spwsList.Lists();
2 wsLists.Credentials = newNetworkCredential(username,password, domain);
3 Console.WriteLine(wsLists.GetListCollection().OuterXml);
上面的CredentialCache、NetworkCredential都是在System.Net命名空间下。
表单认证是SharePoint2007新加入的一种身份认证方式,其后台是使用.NetFramework中的Membership机制进行用户身份的识别,对于外网来说,大都是使用表单认证的方式来实现的。在使用表单认证的SharePoint网站中通过WebService获取数据稍微麻烦一些,不过也可以通过SharePoint提供的表单认证WebService来创建用户身份相关的Cookie。
表单认证WebService的地址是:http://[server]/[site]/_vti_bin/authentication.asmx
在使用WebService的程序中再次加入上面这个Web引用,假设其命名空间是spwsAuth,那么使用表单认证构造身份并访问数据的代码实例如下:
1 spwsAuth.Authentication auth =newspwsAuth.Authentication();
2 auth.CookieContainer = new CookieContainer();
3 auth.AllowAutoRedirect = true;
4 spwsAuth.LoginResult lr =auth.Login(username,password);
5 if (lr.ErrorCode == spwsAuth.LoginErrorCode.NoError)
6 {
7 spwsList.Lists wsList = new spwsList.Lists();
8 wsList.CookieContainer = auth.CookieContainer;
9 XmlNode res = wsList.GetListCollection();
10 Console.WriteLine(res.OuterXml);
11 }
SharePoint身份验证最常用的是Windows验证(WindowsAuthentication)和表单验证(FormAuthentication)两种。
Windows验证即使用Windows账号或者AD账号来进行身份验证,对于这种验证方式,在SharePointSDK中已经给出了如何提供身份验证的方法,假设我们使用最常用的lists.asmx来获取SharePoint列表数据,添加的Web引用的命名空间是spwsList:
使用当前帐户身份: 1 spwsList.Lists wsLists = new spwsList.Lists();
2 wsLists.Credentials = CredentialCache.DefaultCredential;
3 Console.WriteLine(wsLists.GetListCollection().OuterXml);
使用指定帐户: 1 spwsList.Lists wsLists = new spwsList.Lists();
2 wsLists.Credentials = newNetworkCredential(username,password, domain);
3 Console.WriteLine(wsLists.GetListCollection().OuterXml);
上面的CredentialCache、NetworkCredential都是在System.Net命名空间下。
表单认证是SharePoint2007新加入的一种身份认证方式,其后台是使用.NetFramework中的Membership机制进行用户身份的识别,对于外网来说,大都是使用表单认证的方式来实现的。在使用表单认证的SharePoint网站中通过WebService获取数据稍微麻烦一些,不过也可以通过SharePoint提供的表单认证WebService来创建用户身份相关的Cookie。
表单认证WebService的地址是:http://[server]/[site]/_vti_bin/authentication.asmx
在使用WebService的程序中再次加入上面这个Web引用,假设其命名空间是spwsAuth,那么使用表单认证构造身份并访问数据的代码实例如下:
1 spwsAuth.Authentication auth =newspwsAuth.Authentication();
2 auth.CookieContainer = new CookieContainer();
3 auth.AllowAutoRedirect = true;
4 spwsAuth.LoginResult lr =auth.Login(username,password);
5 if (lr.ErrorCode == spwsAuth.LoginErrorCode.NoError)
6 {
7 spwsList.Lists wsList = new spwsList.Lists();
8 wsList.CookieContainer = auth.CookieContainer;
9 XmlNode res = wsList.GetListCollection();
10 Console.WriteLine(res.OuterXml);
11 }
相关文章推荐
- SharePoint Web Service的身份验证
- SharePoint Web Service的身份验证
- SharePoint Web Service的身份验证
- SharePoint Web Service的身份验证
- SharePoint Web Service系列:获取文档的属性信息
- 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇
- SharePoint WebService 之更新审批状态
- java调用sharepoint webservice
- cxf webservice身份验证
- SharePoint WebService——根据群组名称获取成员信息
- 分别用(Windows/Form/Soap/WebService)实现用户身份验证(含示例代码下载)
- SharePoint Web Service系列:编写自定义SharePoint Web Services之二
- Flash + SharePoint WebService播放视频 (一)
- SharePoint Web Service系列:编写自定义SharePoint Web Services之二
- SharePoint Web Service系列:编写自定义SharePoint Web Services
- SharePoint Authentication WebService的Login方法缺陷
- 工具:sharepoint webservice:根据asmx生成disco和wsdl文件
- SharePoint Web Service系列:进行列表的增删改
- SharePoint WebService——根据群组名称获取成员信息
- SharePoint Web Service系列:进行列表的增删改