EventHandler에서 사용자 권한을 높이는 방법(아날로그 관리자 권한)
4191 단어 handler
작업 흐름에서 다음과 같은 코드로 권한을 향상시킬 수 있습니다. (다음 코드는 목록 항목을 끊는 권한입니다. 관리자를 제외하고는)
SPListItem item = workflowProperties.Item;
SPSecurity.RunWithElevatedPrivileges(delegate() //
{
using (SPSite site = new SPSite(workflowProperties.SiteId)) // dispose()
{
using (SPWeb web = site.OpenWeb(workflowProperties.WebId)) // web !!!
{
try
{
if (!item.HasUniqueRoleAssignments) item.BreakRoleInheritance(false); // , “false”, , , “true”, 。
}
catch (Exception ex)
{
}
}
}
});
그러나 EventHandler에서 상기 코드를 그대로 사용하면 목록 항목의 item 실례를 호출하여 조작할 때(예를 들어 item.BreakRoleInheritance) "권한이 없음"을 알립니다.근본적인 원인은 item 실례가 RunWith Elevated Privileges 코드 세그먼트에서 실례화되지 않았기 때문이다.즉, item은 다음과 같이 RunWithElevatedPrivileges에서 실례화되어야 합니다.
SPSecurity.RunWithElevatedPrivileges(delegate() //
{
using (SPSite site = new SPSite(properties.SiteId)) // dispose()
{
using (SPWeb web = site.OpenWeb(properties.OpenWeb().ID)) // web !!!
{
try
{
SPList list = web.Lists[properties.ListId];
SPListItem item = list.Items.GetItemById(Convert.ToInt32(properties.ListItemId));
//SPListItem item = properties.ListItem.ID;
//
if (!item.HasUniqueRoleAssignments) item.BreakRoleInheritance(false); // , “false”, , , “true”, 。
}
catch (Exception ex)
{
}
}
}
});
에서
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IAlertNotifyHandler를 통해 Alert Email을 정의하는 방법사용자 정의 Alert email, 모양만 수정하는 것이 아니라 내용의 출력을 제어해야 합니다 전체 코드는 다음과 같습니다. 3. SharePoint Server의 GAC에 dll을 배치합니다. 4. C:\Progr...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.