SPSecurity.RunWithElevatedPrivileges method
即使使用者否則也不會有完全控制權,請執行指定的方法,具有完全控制] 權限。
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
Public Shared Sub RunWithElevatedPrivileges ( _
secureCode As SPSecurity.CodeToRunElevated _
)
'用途
Dim secureCode As SPSecurity.CodeToRunElevatedSPSecurity.RunWithElevatedPrivileges(secureCode)
public static void RunWithElevatedPrivileges(
SPSecurity.CodeToRunElevated secureCode
)
參數
secureCode
Type: Microsoft.SharePoint.SPSecurity.CodeToRunElevated委派方法,是以較高的權限執行。這個方法會執行應用程式集區身分對裝載該應用程式集區的所有網站集合中的網站集合系統管理員權限。
備註
secureCode建立的物件可以從任何方法,是無參數並傳回void。請參閱SPSecurity.CodeToRunElevated。
此外,您也可以略過使用SPSecurity.CodeToRunElevated建構函式定義內RunWithElevatedPrivileges的呼叫匿名方法。
重要
如果secureCode包含任何寫入作業,然後呼叫RunWithElevatedPrivileges前面必須有SPUtility.ValidateFormDigest()或SPWeb.ValidateFormDigest()的呼叫。
Examples
第一個範例顯示RunWithElevatedPrivileges與SPSecurity.CodeToRunElevated建構函式一起使用。在這個範例中, GetSitesAndGroups是無參數方法會傳回 void,定義某處可以存取的Button1_Click方法。
protected void Button1_Click(object sender, EventArgs e)
{
SPSecurity.CodeToRunElevated elevatedGetSitesAndGroups = new SPSecurity.CodeToRunElevated(GetSitesAndGroups);
SPSecurity.RunWithElevatedPrivileges(elevatedGetSitesAndGroups);
}
下一個範例顯示在RunWithElevatedPrivileges的呼叫中定義匿名方法所需的語法。
SPSecurity.RunWithElevatedPrivileges(delegate()
{
// implementation details omitted
});
可以在委派參考委派之外建立SPSite物件,不過,方法和屬性採物件的執行與使用者內容中建立物件的權限,而不提高的權限。相同的點適用於SPWeb物件和任何其他的物件。如果您要執行的較高權限的物件成員,您必須建立委派中的新物件。如果新的物件必須代表相同的持續性的實體,做為委派之外建立的物件,然後您必須從外部建立的物件參考識別資訊並使用它來建立委派的新物件。例如,如果web是RunWithElevatedPrivileges的呼叫之前建立的SPWeb物件的參考,然後下列程式碼會顯示您可以使用其父代SPSite物件的識別碼來建構新的SPSite物件。
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(web.Site.ID))
{
// implementation details omitted
}
});
內委派, site物件的成員執行以提高的權限,但不是會呼叫web.Site的成員。請注意using關鍵字用來確保物件已處置委派中。
請參閱
參照
Microsoft.SharePoint namespace