Как использовать учетные данные AppPool? - PullRequest
1 голос
/ 23 апреля 2011

Наше веб-приложение может загружать файлы с Sharepoint и показывать их пользователю, но только если я предоставлю свое личное имя пользователя и пароль для процесса.Я получил предложение о том, что: «мы должны использовать учетные данные AppPool (UseDefaultCredentials=True.

Какие изменения я могу внести, чтобы это работало с UseDefaultCredentials=True?А что такое UseDefaultCredentials=true?

string documentName = null;
string contentType = "unknown";

// We don't want to use this method of credentials
System.Net.NetworkCredential cred = new System.Net.NetworkCredential("USERNAME", "PASSWORD");

ClientContext clientContext = new ClientContext("http://MOSSSERVER/MYDIRECTORY");
clientContext.Credentials = cred;

FileInformation fileInformation = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, reference);

documentName = Path.GetFileName(reference);

return new FileStreamResult(fileInformation.Stream, contentType)
{
  FileDownloadName = documentName
};

Ответы [ 2 ]

2 голосов
/ 23 апреля 2011

Проверьте этот вопрос:

Получение NetworkCredential для текущего пользователя (C #)

Если вы можете просто заставить клиентский контекст использовать учетные данные процесса, который его выполняет, то вы будете использовать учетные данные пула приложений. Он может использовать текущий пользовательский контекст по умолчанию, если вы не предоставите никаких учетных данных.

Вы должны быть уверены, что учетные данные пула приложений также имеют доступ к файлу. Вы можете настроить пользователя пула приложений в IIS в разделе расширенных настроек пула приложений и выбрать пользователя, который имеет доступ к файлам точки общего доступа.

Если вы просто работаете в контексте Visual Studio, то для текущего вошедшего в систему пользователя будут установлены учетные данные по умолчанию.

2 голосов
/ 23 апреля 2011

Согласно MSDN, «объектная модель клиента автоматически использует учетные данные по умолчанию.» Вы пытались не устанавливать учетные данные в контексте клиента? Следующее также показано по той же ссылке:

context.Credentials = CredentialCache.DefaultCredentials;

...