Разрешения SharePoint WebPart

Привет, я использую пространство имен SharePoint для веб-части, и я сталкиваюсь с некоторыми ошибками разрешений, когда пытаюсь использовать системную учетную запись. Есть ли способ использовать определенного пользователя вместо системной учетной записи?

Прямо сейчас у меня есть:

SPUserToken sysToken = SPContext.Current.Site.SystemAccount.UserToken;
using (SPSite site = new SPSite(_SPSite, sysToken))

Я хочу иметь возможность использовать учетную запись в домене вместо системной учетной записи, спасибо за любой совет.

Ответов (3)

Вы можете использовать SPUserCollection

SPContext.Current.Site.RootWeb.AllUsers

чтобы привлечь всех пользователей на сайт и получить SPUser оттуда информацию. Как только у вас есть, SPUser вы можете получить UserToken.

Вам может потребоваться использовать RunWithElevatedPermissions, чтобы получить доступ к системной учетной записи для работы, как указано в следующем сообщении в блоге:

http://solutionizing.net/2009/01/06/elegant-spsite-elevation/

Что ты пытаешься сделать? Если вы не используете токен, Интернет будет открыт с теми же разрешениями, что и текущий пользователь.

/* runs as user requesting the web part */
SPSite site = SPContext.Current.Web.site 

или вы можете обернуть его в делегат RunWithElevatedPrivileges

/* runs with admin privileges */         
SPSecurity.RunWithElevatedPrivileges(
   delegate()
   {
      using (SPSite site = new SPSite(SPContext.Current.Web.Site.Url))
      {
        //do stuff
      }
   }
);