Как удалить профиль пользователя SharePoint программно-при использовании FBA?
Привет ребята,
Я пытаюсь разработать веб-часть, с помощью которой "администраторы" могут добавлять, редактировать и удалять пользователей как в SharePoint, так и в SQL-членстве.
Эта веб-часть должна работать на портале FBA.
Здесь у меня возникла проблема с удалением профилей пользователей SharePoint. Мой код таков, как показано ниже. Но этот код работает только в порталах аутентификации Windows, а не в порталах аутентификации на основе форм.
Я получаю сообщение об ошибке при входе на портал с пользователем SQL-членства.
Вот сообщение об ошибке: "Доступ запрещен: только администратор может удалить профиль пользователя".
RunWithElevatedPrivileges
!Кажется, что
SPSecurity.RunWithElevatedPrivileges
не работает в SPFarm?Я не знаю, как мне избавиться от этой ошибки.:(
Кто-нибудь может мне помочь?
Овации,
SPSecurity.RunWithElevatedPrivileges( delegate { try { //- Step 1: Delete user from membership Utility.DeleteMembershipUser(fullUserName); } catch (Exception ex) { HandleExceptionAsMinor(ex, lblErrorMessage, "deleting the user from Membership Provider", OverrideErrorMessage); } bool catchAccessDenied = SPSecurity.CatchAccessDeniedException; SPSecurity.CatchAccessDeniedException = false; try { //- Step 2: Delete User Profile SPUtility.ValidateFormDigest(); SPContext.Current.Site.AllowUnsafeUpdates = true; var sc = ServerContext.GetContext(site); var userProfileManager = new UserProfileManager(sc); if (userProfileManager.UserExists(fullUserName)) { UserProfile userProfile = userProfileManager.GetUserProfile(fullUserName); if (userProfile.PersonalSite != null) userProfile.PersonalSite.Delete(); /////***** HERE I GET THE ERROR*****///////////// userProfileManager.RemoveUserProfile(fullUserName); /////***** HERE I GET THE ERROR ******///////////// } } catch (Exception ex) { HandleExceptionAsMinor(ex, lblErrorMessage, "deleting the user from SharePoint Profile", OverrideErrorMessage); } finally { SPSecurity.CatchAccessDeniedException = catchAccessDenied; SPContext.Current.Site.AllowUnsafeUpdates = false; } try { //- Step 3: Delete User from SharePoint Site site.RootWeb.SiteUsers.Remove(fullUserName); } catch (Exception ex) { HandleExceptionAsMinor(ex, lblErrorMessage, "deleting the user from Site Groups", OverrideErrorMessage); } } }); string connectionString = ConfigurationManager.ConnectionStrings[ConnStringName].ConnectionString; Grid.DataBind(); } catch (Exception ex) { HandleExceptionAsMinor(ex, lblErrorMessage, "deleting the user", OverrideErrorMessage); }
Sandeep Mewara
Используйте предварительные теги для форматирования части кода. Это делает вопрос читабельным.