WSSプロモーションコード実行権限

WSSプロモーションコード実行権限

概要:

WSSは、デフォルトでは現在ログインしているユーザーを使用して、コードAccess Webパーツやカスタムアプリケーションを実行するコードを実行するために偽装を使用します。ほとんどの場合、このメカニズムは正確かつ厳密に標準ユーザーのアクセス許可に私たちが達成したい目標であり、特定のWebサイトのリソースや機密データへの彼のアクセスを制御することができます。

時には、しかし、いくつかの特別なシーンで、あなたのコードは、要求者は、ユーザーの特権ではない場合でも、一定の方法が制限WSSターゲットを実行する必要があります。したがって、この場合には、我々はコードを実行する権限を一般ユーザを昇格する必要があります。

方法:

SPSecurity.RunWithElevatedPrivileges(デリゲート()

{

    実行に昇格されたアクセス許可が必要です//コード

});

事例:

サイトコレクションの所有者の名前を取得しますSPSite.Owner.Name

デフォルトでは、SPSite.Owner.Nameを実行するために一般のユーザーに昇格された特権でコードを実行しない場合、システムがエラーを報告し、「アクセスが拒否されました」管理者権限を取得することができ、ユーザのニーズのサイトコレクションです。

ただし、以下のコードが実行され、私たちの通常のユーザー権限は、成功しSPSite.Owner.Nameへのアクセスを得ることができます

SPSiteオブジェクトsiteColl = SPContext.Current.Site。

SPWebサイト= SPContext.Current.Web。

SPSecurity.RunWithElevatedPrivileges(デリゲート(){

使用(のSPSite ElevatedsiteColl =新規のSPSite(siteColl.ID)){

使用(SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID))

{

        //ファイル名を指定して実行SHAREPOINTとして「システムアカウントシステムアカウントID

      文字列SiteCollectionOwner = ElevatedsiteColl.Owner.Name。    

    }

 }

});

注意:

これらのオブジェクトが作成され、現在のユーザーのセキュリティコンテキストに基づいているため、コード内で昇格した権限を使用してSPSecurity.RunWithElevatedPrivileges、SPSiteオブジェクト、SPWebオブジェクト、およびオブジェクトをインスタンス化しなければならないが、Microsoft.SharePoint.SPContext.Currentプロパティを取得するために使用することはできません

システムは自動的に廃棄し、リソースの完全な解放を行うことができるように、オブジェクトのインスタンスを作成使用して使用してください。

前述したこの方法は、もちろん、我々はまた、コードを実行するアカウントを指定することができ、コードを実行するには、最高管理者アカウントの完全な権限:

SPSiteオブジェクトsiteColl = SPContext.Current.Site。

SPWebサイト= SPContext.Current.Web。

SPUserのユーザー= [ "は、Litware \ケン" @] site.Users。

SPUserTokenはUserToken = user.UserToken。

 

SPSecurity.RunWithElevatedPrivileges(デリゲート(){

使用(のSPSite ElevatedsiteColl =新規のSPSite(siteColl.ID、はUserToken)){

使用(SPWeb ElevatedSite = ElevatedsiteColl.OpenWeb(site.ID))

{//県の実行」LITWAREする
      文字列SiteCollectionOwner = ElevatedsiteColl.Owner.Nameを。    

    }

 }

});

このようにして、その後、コードは関係なく、県当局が高いか低い実行するためには、Litware許可の「県へ。

ます。https://www.cnblogs.com/llbofchina/archive/2008/05/24/1206393.htmlで再現

おすすめ

転載: blog.csdn.net/weixin_33901926/article/details/94206508