2010-06-15 2 views
8

일반 사용자가 Mysite 루트 사이트의 "사용자 정보 목록"에 액세스 할 수있게하고 싶습니다. "RunWithElevatedPrivileges"메서드를 사용하고 있습니다. 여전히 액세스 거부 오류가 발생했습니다. 예를 들어 mysite의 내 루트 사이트 모음은 "http://network.test.com"입니다. 사용자가 사용자 정보를 평가하려면이 사이트 모음을 나열해야합니다. 어떻게 접근 할 수 있니? RunWithelevatedPrivileges 높은 컨텍스트 외부RunWithElevatedPrivileges를 사용할 때 액세스가 거부 되었습니까?

SPSecurity.RunWithElevatedPrivileges(delegate 
{ 
    using (SPSite site = new SPSite(SPContext.Current.Web.Site.ID)) 
    { 

    ServerContext sc = ServerContext.Current; 
    UserProfileManager upm = new UserProfileManager(sc); 
    UserProfile up = null; 
    //get current user's profile (visitor) 
    if (upm.UserExists(SPContext.Current.Web.CurrentUser.LoginName)) 
    { 
     up =upm.GetUserProfile(SPContext.Current.Web.CurrentUser.LoginName); 

     SPWeb web = SPContext.Current.Web; 
     SPList userInformationList = web.Lists["User Information List"]; 
+0

SharePoint가 포함 된 서버에서 코드를 실행 했습니까? –

답변

6

SPContext.Current 실행됩니다. 자세한 내용은 this 블로그 게시물을 참조하십시오.

6

SPWeb을 SPContext.Current.Web으로 설정하면 상승 된 권한이 없습니다. 대리인 내부에서 만든 SPSite 만 SPWebs를 만들 수 있습니다.

그래서 당신은 당신이 상승 된 권한이없는이 SPContext.Current.Web하기 위해 SPWeb을 설정하는

SPWeb web = site.OpenWeb(SPContext.Current.Web.ID); 
-1

SPWeb web = SPContext.Current.Web; 

를 교체해야합니다. 참조 : post :

관련 문제