Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将外部列表数据从一个SP场拉到另一个SP场的最佳方法?_C#_Xml_Sharepoint_Sharepoint 2007_Active Directory - Fatal编程技术网

C# 将外部列表数据从一个SP场拉到另一个SP场的最佳方法?

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

我正在考虑使用owssvr,提供列表GUID,然后解析数据。有没有更好的方法?我需要提供获取数据的凭据,我需要有一个至少可以根据AD(内部安全要求)进行身份验证的帐户

我的基本呼叫如下所示:

//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()中,它可以正常工作。这是好的做法吗?谢谢