2010-07-20 1 views
0

여기에 시나리오가 있습니다. 익명 액세스가 설정된 외부 SharePoint 인스턴스가 있습니다. 우리는 문서 라이브러리를 공개하고자합니다. 맞춤 목록을 열지 않기를 바랍니다. 그것은 구성하기에 충분히 간단했습니다.익명 액세스를 사용하여 ASP.Net 웹 응용 프로그램에서 명명 된 사용자로 SharePoint API에 액세스

이제 이러한 목록을 사용하여 매력적인 외부 ASP.Net 웹 응용 프로그램을 만들고 싶습니다. 이 웹 사이트는 익명으로 활성화해야합니다.

익명 액세스를 허용하지 않고 웹 응용 프로그램에서 해당 목록에 액세스해야하는 문제가 있습니다.

동일한 상자에 호스팅되므로 API (웹 서비스 아님)를 사용하고 싶습니다.

지금까지는 목록을 열 수있는 적절한 액세스 권한을 가진 SPUser를 만들 수 없었습니다.

SPContext가 비어 있습니다.

이렇게하는 것도 실패합니다. SPSite temp = new SPSite (URL); SPUserToken token = temp.SystemAccount.UserToken;

SPSite 사이트 = 새 SPSite (URL, 토큰); ... 사용자로서 물건을하십시오.

RunWithElevatedPrivileges도 실패합니다.

도와주세요!

답변

0

SharePoint 2010을 사용하고 계신가요? 다른 응용 프로그램에서 액세스 할 수있는 더 많은 옵션이 있습니다. 2010 년이 아니라면 SP OM이 비 SharePoint 박스에서 실행되지 않기 때문에 OTB 나 웹 서비스와 같은 종류의 웹 서비스를 사용해야 할 것입니다.

이와는 별도로 응용 프로그램 풀에서 SPToken을 가져올 수 있습니다. 기본적으로

SPUserToken sysToken = SPContext.Current.Site.SystemAccount.UserToken; 
using(var systemSite = new SPSite(SPContext.Current.Site.ID, sysToken)) 

다니엘 라슨은 RunWithElevatedPriveleges을 사용하여 이상이 방법의 큰 지지자이다. 문제에 대해서는 그의 blog post을 확인하십시오.

+0

2010 년은 아닙니다. 2007 년입니다. SharePoint와 동일한 상자에 앱이 있으므로 API를 사용하고 싶습니다. 위의 코드는 첫 번째 줄에 개체 오류의 인스턴스로 설정되지 않은 개체 참조를 throw합니다. – SPCoder

+0

코드 실행 방법에 따라 SPContext가 설정되지 않을 수 있습니다. 로드하려는 URL을 기반으로 사이트 모음에 대한 참조를 가져와야 할 수 있습니다. –

관련 문제