0
我在非常簡單的代碼中得到了此異常,並且我使用提升的特權運行它。 它在SharePoint 2010System.UnauthorizedAccessException由簡單代碼中的用戶代碼未處理
private void ChangeVersioningOnDocumentLibrary(SPListItem item, SPItemEventProperties properties, SPSite site)
{
string sitename = item[MeetingsCommon.Constants.FIELDS_TEXT_TITLE_NAME].ToString();
string prefix = item[MeetingsCommon.Constants.FIELDS_TEXT_TITLE_NAME].ToString().Substring(0, 2);
bool isConfirmed = item.TaxonomyFieldValueIsGivenValue(properties.AfterProperties, MeetingsCommon.Constants.FIELDS_MEETINGSTATUS_NAME, MeetingsCommon.Constants.TERMVALUE_MEETINGSTATUS_CONFIRMED, 1033);
bool isPublished = item.TaxonomyFieldValueIsGivenValue(properties.AfterProperties, MeetingsCommon.Constants.FIELDS_MEETINGSTATUS_NAME, MeetingsCommon.Constants.TERMVALUE_MEETINGSTATUS_PUBLISHED, 1033);
if (isConfirmed)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPWeb web = site.OpenWeb(prefix + "/" + sitename))
{
if (web.Exists)
{
web.AllowUnsafeUpdates = true;
SPList agendaPoints = web.GetSafeListByName(MeetingsCommon.Constants.LISTS_AGENDAPOINTS_NAME);
agendaPoints.EnableModeration = true;
agendaPoints.DraftVersionVisibility = DraftVisibilityType.Author;
agendaPoints.Update();
web.AllowUnsafeUpdates = false;
}
}
});
}
if (isPublished)
{
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPWeb web = site.OpenWeb(prefix + "/" + sitename))
{
if (web.Exists)
{
web.AllowUnsafeUpdates = true;
SPList agendaPoints = web.GetSafeListByName(MeetingsCommon.Constants.LISTS_AGENDAPOINTS_NAME);
agendaPoints.EnableModeration = false;
agendaPoints.DraftVersionVisibility = DraftVisibilityType.Author;
agendaPoints.Update();
web.AllowUnsafeUpdates = false;
}
}
});
}
}