본문 바로가기

Troubleshoot

Sharepoint 2010 User Profile 생성 시 Access Denied(권한 없음) 에러

MySite User Profile이 없는 경우 생성하는 코드를 입력하고 CreateUserProfile, CreatePersonalSite 을 실행하면 아래와 같은 에러가 발생합니다.

Access Denied: To create a user profile, you must be an administrator, or create your own profile and have personal features rights.

 

제가 작성한 코드는 아래와 같습니다.

SPSecurity.RunWithElevatedPrivileges(delegate()
{
	using (SPSite oSite = new SPSite(strSiteUrl))
	{
		SPServiceContext context = SPServiceContext.GetContext(oSite);
		UserProfileManager profileManager = new UserProfileManager(context);
		UserProfile userProfile;
		if (!profileManager.UserExists(strAccountName))
		{
			SPContext.Current.Site.AllowUnsafeUpdates = true;
			SPContext.Current.Web.AllowUnsafeUpdates = true;
			userProfile = profileManager.CreateUserProfile(strAccountName);
			SPContext.Current.Web.AllowUnsafeUpdates = false;
			SPContext.Current.Site.AllowUnsafeUpdates = false;
		}
	}
});

위의 문제는 UserProfile에 접근 권한이 없어서 발생되는 것입니다.

아래와 같이 진행하시면 됩니다.

  1. 중앙관리로 이동
  2. 응용프로그램 관리 –> 서비스 응용 프로그램 관리
  3. UserProfile Services 선택 후 리본 메뉴의 관리자 선택
  4. 시스템 관리자 계정 입력 후 모든 권한 체크

를 하시면 됩니다.

이미지로 보시면 아래와 같습니다.

 

그리고 난 후 UserProfile을 생성하시면 정상적으로 생성 됩니다.

추가로 제가 AllowUnsafeUpdate가 없는 경우 아래와 같은 에러메시지가 나타납니다.

The security validation for this page is invalid. Click Back in your Web browser, refresh the page, and try your operation again.

 

위의 메시지 때문에 아래의 코드를 입력한 것이니 참고 하시기 바랍니다.

			SPContext.Current.Site.AllowUnsafeUpdates = true;
			SPContext.Current.Web.AllowUnsafeUpdates = true;

			SPContext.Current.Web.AllowUnsafeUpdates = false;
			SPContext.Current.Site.AllowUnsafeUpdates = false;

 

이상입니다.

 

고맙습니다.