In general code in SharePoint runs with the privileges of the current user, but sometimes you need to run code with elevated privileges. The SharePoint object model covers this scenario with the
SPSecurity.RunWithElevatedPrivileges. In
Power WebPart you can use the “Runas-System” function to run script with elevated privileges. Usage: Runas-System –script
Example 1: Output Current Identity
function render($writer)
{
$identiy1 = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$identiy2 = Runas-System "[System.Security.Principal.WindowsIdentity]::GetCurrent().Name"
$writer.Write($identiy1)
$writer.Write($identiy2)
}Example 2: Call a Function with Parameters
function Render-Identity($writer)
{
$identity = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
$writer.Write($identity)
}
function render($writer)
{
Render-Identity $writer
Runas-System "Render-Identity `$writer"
}Example 3: Call a Function with Return Value
function Get-Identity
{
return [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
}
function render($writer)
{
$identity1 = Get-Identity
$identity2 = Runas-System "Get-Identity"
$writer.Write($identity1)
$writer.Write($identity2)
}Example 4: Impersonate SPWeb
function render($writer)
{
$writer.Write($web.CurrentUser.LoginName)
$impersonatedWeb = Runas-System "Get-SPWeb $($web.Url)"
$writer.Write($impersonatedWeb.CurrentUser.LoginName)
$impersonatedWeb.Dispose()
}
0 comments:
Post a Comment