#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=Displayamp;List={8C3DE28C-00EF-40CE-8FD1-2D76D7F85426}amp;XMLDATA=TRUE");//hard coded for testing
/*This is where I'd parse the xDoc*/
Есть ли лучший способ сделать это? На данный момент я застрял с проблемой учетных данных. Обе фермы — SharePoint 2007, могут ли они лучше использовать общий доступ?
Ответ №1:
Попробуйте это:
var xmlUrlResolver = new XmlUrlResolver { Credentials = CredentialCache.DefaultCredentials };
var xmlTextReader = new XmlTextReader("http://yoururl") { XmlResolver = xmlUrlResolver };
var xDoc = XDocument.Load(xmlTextReader);
Возможно, вы сможете еще больше сократить этот код, но это даст вам некоторое направление для дальнейшего изучения.
Обратите внимание, что я использую классы .NET 4 LINQ to XML.
Для версии Xml DOM первые 2 строки остаются неизменными:
var xDoc = new XmlDocument();
xDoc.Load(xmlTextReader);
Комментарии:
1. Как ни странно, это работало, но теперь, после того, как я выполнил IISRESET для извлечения данных из ящика, я не могу заставить его извлекать данные с внешнего сайта SP. Знаете ли вы, что могло измениться?
2. Я завернул это в SPSecurity. RunWithElevated() и это работает. Это хорошая практика? Спасибо,