서버 개체 모델을 통해 목록 조절을 사용하지 않도록 설정합니다
-
29-09-2020 - |
문제
코드를 통해 목록 조절을 사용하지 않으려면 다음 코드를 작성했습니다
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();
}
});
. 제휴하지 않습니다 sharepoint.stackexchange