Как передать учетные данные в httpwebrequest для доступа к библиотеке SharePoint - PullRequest
28 голосов
/ 04 марта 2011

Я пытаюсь прочитать файлы из библиотеки документов SharePoint, используя HttpWebRequest. Чтобы сделать это, я должен передать некоторые полномочия. Я использую запрос ниже:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";
request.ContentType = "application/msexcel";
request.UserAgent = "Mozilla/4.0+(compatible;+MSIE+5.01;+Windows+NT+5.0";
request.Credentials = new NetworkCredential(UserName, PassWord);

Это правильный способ передачи учетных данных?

Ответы [ 3 ]

22 голосов
/ 14 марта 2011

Вы также можете использовать:

request.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; 
6 голосов
/ 04 марта 2011

Если вам нужно запустить запрос как текущий пользователь из настольного приложения, используйте CredentialCache.DefaultCredentials (см. в MSDN ).

Ваш код выглядит нормально, если вам нужно выполнить запрос из кода на стороне сервера или под другим пользователем.

Обратите внимание, что вы должны быть осторожны при хранении паролей - рассмотрите возможность использования SecureString версии конструктора.

1 голос
/ 04 марта 2011

Если вам нужно установить учетные данные на лету, взгляните на этот источник:

http://spc3.codeplex.com/SourceControl/changeset/view/57957#1015709

private ICredentials BuildCredentials(string siteurl, string username, string password, string authtype) {
    NetworkCredential cred;
    if (username.Contains(@"\")) {
        string domain = username.Substring(0, username.IndexOf(@"\"));
        username = username.Substring(username.IndexOf(@"\") + 1);
        cred = new System.Net.NetworkCredential(username, password, domain);
    } else {
        cred = new System.Net.NetworkCredential(username, password);
    }
    CredentialCache cache = new CredentialCache();
    if (authtype.Contains(":")) {
        authtype = authtype.Substring(authtype.IndexOf(":") + 1); //remove the TMG: prefix
    }
    cache.Add(new Uri(siteurl), authtype, cred);
    return cache;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...