Проблема программирования безопасности SharePoint - PullRequest
0 голосов
/ 25 февраля 2010

Я использую SharePoint Server 2007 Enterprise с Windows Server 2008 Enterprise. Я развернул издательский портал. Я занимаюсь разработкой веб-приложения ASP.Net с использованием VSTS 2008 + C # + .Net 3.5 + ASP.Net + SharePoint Server 2007 SDK.

Я обнаружил, что иногда нам нужно использовать SPWebApplication.FormDigestSettings.Enabled = false для обхода, например. использование SharePoint API для создания сайта в семействе сайтов. Я хочу знать, почему нам нужно выполнить SPWebApplication.FormDigestSettings.Enabled = false? В чем причина этой сцены?

спасибо заранее, George

1 Ответ

2 голосов
/ 25 февраля 2010

Имеет ли пользователь, выполняющий команды, права на запуск команд? На основании документации представляется, что вы отключаете проверку безопасности, когда для этого свойства установлено значение false.

Лучший способ получить права «суперпользователя» для выполнения команды, для которой текущий пользователь не имеет прав на запуск, - это использовать SPSecurity.RunWithElevatedPrivileges

SPSecurity.RunWithElevatedPrivileges(delegate() 
{
    // Note: It's important that you create all new SPSite and SPWeb
    // objects in the elevated context in order to actually use elevated
    // privileges. Failure to do so will cause your code to execute
    // without elevated privileges.
    using(SPSite site = new SPSite(SPContext.Current.Site.ID))
    {
        using(SPWeb web = site.OpenWeb(SPContext.Current.Web.ID))
        {
             // run code here that requires elevated privileges.
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...