다음 코드를 참고하세요…

long nQuata = long.Parse("500");

 

// 용량은 1byte로 계산 1K 1024, 1M 1024*1024

nQuata = nQuata * 1024L * 1024L;

 

           

SPSite site = new SPSite("http://www.knoie.com/sites/1");

 

 

Microsoft.SharePoint.Administration.SPSiteAdministration admin = new Microsoft.SharePoint.Administration.SPSiteAdministration(site.ID);

 

Microsoft.SharePoint.Administration.SPQuota quota = new Microsoft.SharePoint.Administration.SPQuota();

           

// 저장 용량(0L은 제한없음)

quota.StorageMaximumLevel = nQuata;

// 경고 용량(0L은 제한없음)

quota.StorageWarningLevel = 0L;

// 최대 사용자 수(0은 제한 없음)

quota.InvitedUserMaximumLevel = 0;

           

 

admin.Quota = quota;

admin.Dispose();

 

이 코드의 핵은 SPSiteAdministration 인데 이 안에서 SPSite를 관리자 모드로 설정하여 SPSite 설정을 다양하게

해줄 수 있습니다. 이 때, 내부적으로 다음과 같은 코드로 현재 사용자가 권한이 있는지 체크합니다.

if (this.m_Site.WebApplication.Farm.CurrentUserIsAdministrator())
{
            this.m_Site.AdministratorOperationMode = true;
}

 

즉 위의 코드는 관리자 권한으로 실행되는 페이지 안에서만 실행됩니다.

 

728x90

지금 작업 중에, MOSS 2007 안에 있는 콘텐츠 데이터베이스를 각 사이트 콜렉션별로
나누어 만드는 작업이, 콘텐츠 데이터베이스 갯수 : 사이트 콜렉션 갯수를 1:1로 맞추어 진행하고 있다.

그런데, 재미있는 것은 만든 사이트 콜렉션 내에 사이트를 무한대 만들어도
콘텐츠 데이터 베이스에서는 무조건 현재 사이트 수를 1로 잡고 있었다.

이는 즉, 이 콘텐츠 데이터베이스 입장에서는 하위 사이트 수는 전혀 관계 없고
오로지 사이트 콜렉션이 몇개인지에 달려있다고 볼 수 있다.
만일 사이트 콜렉션 수가 콘텐츠 데이터베이스에 1개만 달렸다면,
콘텐츠 데이터베이스는 죽었다 깨어나도 사이트 콜렉션을 1개만 달고,
그 하위의 사이트는 무한대로 달 수 있게 된다.

728x90

+ Recent posts

728x90