문제

코드를 통해 목록 조절을 사용하지 않으려면 다음 코드를 작성했습니다

SPList lstBookings = web.Lists.TryGetList("Bookings");
                    lstBookings.EnableThrottling = false;
.

그러나 비 관리자가 아닌 사용자로 로그인하면 오류가 로그인 할 수 없으므로 코드가 상승 된 권한에서 실행됩니다.

아이디어가 있습니까?

감사합니다.

도움이 되었습니까?

해결책

EnableThling은 팜 관리자 권한이 필요합니다.다음 코드를 살펴보십시오.

public bool EnableThrottling
{
    get { ... }
    set
    {
        bool nothrottlevalue = !value;
        this.SetListNoThrottle(nothrottlevalue);
    }
} 

internal void SetListNoThrottle(bool nothrottlevalue)
{
    SPSite site = this.ParentWeb.Site;
    if (!site.WebApplication.Farm.CurrentUserIsAdministrator(true))
        SPGlobal.HandleUnauthorizedAccessException(new UnauthorizedAccessException());
    else
        { ... }
}
.

시스템 계정은 사이트 모음 관리자 권한이 있습니다.spsecurity.runwitheLevatedPrivileges는 모든 사이트 모음에 대한 동일한 사이트 모음 관리자 권한이 동일한 응용 프로그램 풀 ID로 코드를 실행할 수 있습니다.

다른 팁

응용 프로그램 풀 ID 사용자 로이 코드를 실행하십시오.

SPSecurity.RunWithElevatedPriveleges( () => {
     using (var site = new SPSite(SPContext.Current.Site.ID))
                {
                    var web = site.RootWeb;
                    var lstBookings = web.Lists.TryGetList("Bookings");
                    lstBookings.EnableThrottling = false;
                    lstBookings.Update();
                }
});
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top