2011-04-22 1 views
1

우리 webapp은 Sharepoint에서 파일을 다운로드 할 수 있으며 프로세스에 내 개인 사용자 이름과 암호를 제공 한 경우에만 사용자에게 보여줍니다. 우리는 "AppPool (UseDefaultCredentials=True.)의 자격 증명을 사용해야합니다"AppPool 자격 증명은 어떻게 사용합니까?

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

확인 :

Getting NetworkCredential for current user (C#)

당신은 당신이 응용 프로그램 풀의 자격 증명을 사용합니다 다음 실행중인 프로세스의 자격 증명을 사용하도록 클라이언트 컨텍스트를 얻을 수 있다면. 자격 증명을 제공하지 않으면 기본적으로 현재 사용자 컨텍스트를 사용할 수 있습니다.

응용 프로그램 풀 자격 증명에도 파일에 대한 액세스 권한이 있어야합니다. 응용 프로그램 풀의 고급 설정에서 IIS의 응용 프로그램 풀 사용자를 구성하고 공유 지점 파일에 액세스 할 수있는 사용자를 선택할 수 있습니다.

Visual Studio 컨텍스트에서 실행중인 경우 현재 로그인 한 사용자는 기본 자격 증명으로 설정됩니다.

2

MSDN에 따르면, "the Client Object Model automatically uses the default credentials." 당신은 클라이언트 컨텍스트에 대한 자격 증명을 설정하지 않는 봤어? 다음은 동일한 링크에도 표시됩니다.

context.Credentials = CredentialCache.DefaultCredentials; 이 질문에 밖으로

+0

나는 그렇지 않습니다. 실제 환경에 접근하기가 어렵습니다. 적어도 토론에 들어가면 여기서의 반응은 정보통 토론을 계속하는 데 도움이 될 것입니다. 나는 적절한 답을 표시하기 위해 다시 올 것이다. – MedicineMan

+0

이 답변도 작동합니다. 슬프게도 나는 답을 모두 옳다고 표시 할 수는 없습니다. – MedicineMan