2016-04-17 3 views
3

私が行うとなぜ私はi:0#.w | domain \ usernameとRunWithElevatedPrivileges domain apppool内にあるのですか?

Console.WriteLine(SPContext.Current.Web.CurrentUser.LoginName); 

私は、次の応答を取得:

i:0#.w|domain\\username 

私はなし

domain\appPoolAccount 

を取得

SPSecurity.RunWithElevatedPrivileges(delegate() { 
    Console.WriteLine(SPContext.Current.Web.CurrentUser.LoginName); 
}); 

行うと0 ...ログイン名内。

誰かがこれがなぜ起こるのか説明できますか?

答えて

4

ユーザー名の前にあるプレフィックス(i:0#.w |)は、SharePointが認証の種類(w:windows auth、f:formsbasedなど)を識別できるように内部コードにすぎません。コード内のiは、それがユーザーであることを識別することです。あなたがグループを書き出そうとするならば、接頭辞はiの代わりにcになります。

あなたはelevatedprivilegesで接頭辞は、これは常に、常にWindowsのユーザーになります管理者/プールアカウントになることである持っていないという事実 - 接頭辞を追加する必要はありませんので...

+0

しかし、午前中はSP 2010の下で、これは起こりません。このSP 2013は特定ですか? – STORM

+1

私の推測では、あなたの2010マシンはWindows認証のみを使用するように構成されているでしょうか?私はわかりませんが、私はクレームプレフィックスに関する完全な説明があるこのリンクにあなたを導きたい:http://www.wictorwilen.se/Post/How-Claims-encoding-works-in-SharePoint-2010.aspx – Verthosa

0

プレフィックス(i:0#.w |)は、SharePoint 2013 Webアプリケーションが実行しているクレームベース認証のためのもので、ログインしたアカウント(クレームベース)には昇格された権限はありません。しかし、特権を使用して実行する場合は、アプリケーションプールユーザーで実行します。これは、ケースのWindowsドメインユーザーで、SharePoint 2013を実行しているサーバー上のIISで検出されます。

関連する問題