のログインユーザーのSPWebを問わず高priveleges
-
10-12-2019 - |
質問
い要求できるものにはログインユーザーです。
のオブジェクトの呼び出しのプロセスの進め方、spweb.
このレガシーコードを変更できませんでしたかの呼び出しプロセスに送を通じて、この問題:そのパスのSPWebとのことですので、送付SPWebる高priveleges.の高架priveleges、ログインユーザが返されます。
場合に用していただきたいと思い、現在のログインユーザーです。
ここで可能ですか?
解決
することができ状況です。
場合には:国外でのRunWithElevatedPrivileges範囲 使用することで知られている高SPWebインスタンスとして保存された範囲以外のRunWithElevatedPrivilegesに限ります。このホラーコードの場合でもが発生する可能性がある点です。この場合、再インスタンスを新たにurlの高架についてどのように:の新しいインスタンス な を高くすることができますユーザーからあります。
例B:すメソッドが呼び内RunWithElevatedPrivileges委譲 この場合の復元SPWebインスタンスとしています。新しいインスタンスが高いことはない。こうした状況から抜け出し、必要とするインスタンスで作成された外部の標高です。いかがですか?これはご実行コンテキスト:例えば、特徴のイベント受信することも可能ですが、新たにウェブインスタンスの特性など。しておりますので、カスタム方法及び情報の修正は行えません、受信したパラメータ、アクセスするために必要な何らかのコンテキストきのリゾートにSPContext.ます。ウェブ?このインスタンスな高いので、ユーザーの現在の一覧は、サイトです。ときにコンテキストは無効/nullの場合、その場合AFAIKな利用のためのユーザーから高いインスタンス:だく必要があるのでどこかのヒント:静的なシングルトン?) に入る前に標高のコンテキスト
編集
う場合に呼び出され内RunWithElevatedPrivileges委譲がご不明な点がございましたらおの有SPContext?これは非常に思っています。RunWithElevatedPrivileges逆戻り、アプリケーションプール人ですか。あなアプリケーションプールで思いがあることを意味しないアプリのプールティでは、現在のユーザに委譲は同一にしなければなりません。がある場合にアプリ用プール、多くの仲間のおかげだと感じておりますSPContex、unelevatedによる定義で設定します。ある特定の場合の走行するタイマーの仕事など や のコンテキストがnullの場合:その場合に考えてもいいのではないかてい専用アプリケーションにプール本人かでも、とても何の効果もありません。
こういうあなたの最善の策は、ユーザーからのSPContex可能な場合には、当が上昇し、unelevatedユーザーが同じ場合は、コンテキストがnullになります。そこで、粒の塩でつながったりもするのだけれど。
他のヒント
FAZIOとして、LAGACYコードをSPWEBオブジェクトに渡すために使用された偽装を使用した元の開発者に述べたが、あなたの場合はあなたはできません!
昇降とは、SPWebオブジェクトがシステムユーザーに上昇し、そのユーザーはSPWEBオブジェクトが廃棄されていないかどうかにかかわらず、そのユーザーを返します!
SPUser loggedinUser = SPContext.Current.Web.CurrentUser;
.
上記のコードは、昇格したSPWebオブジェクトのうち、昇格されたブロック内であれば、それがシステムアカウントの残念ながら返却する場合は機能します。
あなたはいくつかのコードを投稿できますか?またはあなたが渡されるSPWebオブジェクトを使用するところに、もう少し情報を提供してください。現在のOpen SPWebオブジェクトで上記のコードを使用してから、SPWebオブジェクトを昇格したオブジェクトに設定できますか?
しかし短い答えは、昇格したユーザーから実際にログインしているユーザーを取得できません。