2010-06-15 42 views
8

Tôi muốn người dùng thông thường có thể truy cập "Danh sách thông tin người dùng" trong trang web gốc Mysite. Tôi đang sử dụng phương pháp "RunWithElevatedPrivileges". Vẫn đang ném truy cập bị từ chối lỗi. ví dụ: tuyển tập trang gốc của tôi cho mysite là "http://network.test.com". người dùng muốn đánh giá danh sách userinformation bộ sưu tập trang web này. Làm thế nào ông có thể truy cập đó?Truy cập bị từ chối khi sử dụng 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

bạn có chạy mã trong máy chủ chứa SharePoint không? –

Trả lời

6

SPContext.Current chạy bên ngoài ngữ cảnh nâng cao RunWithelevatedPrivileges. Để biết thêm thông tin, xem this bài đăng trên blog.

6

Bạn đang đặt SPWeb của mình thành SPContext.Current.Web, điều này không có đặc quyền nâng cao. Chỉ SPWeb được tạo từ SPSites được tạo bên trong đại biểu mới được nâng lên.

Vì vậy, bạn cần phải thay thế

SPWeb web = SPContext.Current.Web; 

với

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

Bạn đang thiết SPWeb của bạn để SPContext.Current.Web này không có đặc quyền này. Tham khảo này post:

Các vấn đề liên quan