C# 将外部列表数据从一个SP场拉到另一个SP场的最佳方法?
我正在考虑使用owssvr,提供列表GUID,然后解析数据。有没有更好的方法?我需要提供获取数据的凭据,我需要有一个至少可以根据AD(内部安全要求)进行身份验证的帐户 我的基本呼叫如下所示:C# 将外部列表数据从一个SP场拉到另一个SP场的最佳方法?,c#,xml,sharepoint,sharepoint-2007,active-directory,C#,Xml,Sharepoint,Sharepoint 2007,Active Directory,我正在考虑使用owssvr,提供列表GUID,然后解析数据。有没有更好的方法?我需要提供获取数据的凭据,我需要有一个至少可以根据AD(内部安全要求)进行身份验证的帐户 我的基本呼叫如下所示: //XmlDocument xDoc = new XmlDocument(); //xDoc.Load("<localsite>/_vti_bin/owssvr.dll?Cmd=Display&List={8C3DE28C-00EF-40CE-8F
//XmlDocument xDoc = new XmlDocument();
//xDoc.Load("<localsite>/_vti_bin/owssvr.dll?Cmd=Display&List={8C3DE28C-00EF-40CE-8FD1-2D76D7F85426}&XMLDATA=TRUE");//hard coded for testing
/*This is where I'd parse the xDoc*/
//XmlDocument xDoc=new XmlDocument();
//xDoc.Load(“/_vti_bin/owssvr.dll?Cmd=Display&List={8C3DE28C-00EF-40CE-8FD1-2D76D7F85426}&XMLDATA=TRUE”)//用于测试的硬编码
/*这就是我要解析xDoc的地方*/
有没有更好的方法?我现在被凭证问题缠住了。这两个服务器场都是SharePoint 2007,它们可以更好地共享吗?尝试以下方法:
var xmlUrlResolver = new XmlUrlResolver { Credentials = CredentialCache.DefaultCredentials };
var xmlTextReader = new XmlTextReader("http://yoururl") { XmlResolver = xmlUrlResolver };
var xDoc = XDocument.Load(xmlTextReader);
您可以进一步减少此代码,但它为您提供了进一步调查的方向。
注意,我使用的是.NET4LINQtoXML类
对于Xml DOM版本,前两行保持不变:
var xDoc = new XmlDocument();
xDoc.Load(xmlTextReader);
试试这个:
var xmlUrlResolver = new XmlUrlResolver { Credentials = CredentialCache.DefaultCredentials };
var xmlTextReader = new XmlTextReader("http://yoururl") { XmlResolver = xmlUrlResolver };
var xDoc = XDocument.Load(xmlTextReader);
您可以进一步减少此代码,但它为您提供了进一步调查的方向。
注意,我使用的是.NET4LINQtoXML类
对于Xml DOM版本,前两行保持不变:
var xDoc = new XmlDocument();
xDoc.Load(xmlTextReader);
奇怪的是,这是可行的,但现在在我做了一个IISRESET的盒子拉数据后,我无法让它从外部SP站点拉数据。你知道会发生什么变化吗?我已经将它包装在一个SPSecurity.RunWithElevated()中,它可以正常工作。这是好的做法吗?谢谢,奇怪的是,这是可行的,但是现在在我做了一个IISRESET在盒子上拉数据之后,我无法让它从外部SP站点拉数据。你知道会发生什么变化吗?我已经将它包装在一个SPSecurity.RunWithElevated()中,它可以正常工作。这是好的做法吗?谢谢