SharePointサーバーに展開する必要がある「Webパーツ」を開発しました。 Webパーツ内のSharePointサーバーにログインしたユーザーのユーザー名が必要です。
そのユーザー名を取得するにはどうすればよいですか?
こんにちは、私は私の質問に対する答えを得ましたこれがあなたのためにうまくいくことを願っています...まず、WebパーツにMicrosoftSharepoint.dllファイルへの参照を追加します。次に、Microsoft.SharePointを使用して書き込みます。
string username;
string sspURL = "URL where Sharepoint is deployed";
SPSite site = new SPSite(sspURL);
SPWeb web = site.OpenWeb();
SPUser user = web.CurrentUser;
username = user.LoginName;
site.AllowUnsafeUpdates = true;
ユアーズ、ジガー<3
以下は私のために働きました:
SPWeb theSite = SPControl.GetContextWeb(Context);
SPUser theUser = theSite.CurrentUser;
string strUserName = theUser.LoginName;
そして this をチェックしてください。
以下を使用できます。
SPWeb web = SPControl.GetContextWeb(this.Context);
string userName = web.CurrentUser.LoginName;
または
string userName = this.Context.User.Identity.Name;
そして、あなたはthis.Context.User.Identity.IsAuthenticated
また、ユーザー名を抽出する前に、ユーザーがログインしていることを確認してください。
SPContext.Current.Web.CurrentUser
// System.DirectoryServices.AccountManagementを参照として追加し、System.DirectoryServices.AccountManagementを使用することを忘れないでください。
PrincipalContext insPrincipalContext = new PrincipalContext(ContextType.Domain, "MyDomain","DC=MyDomain,DC=com");
UserPrincipal insUserPrincipal = new UserPrincipal(insPrincipalContext);
insUserPrincipal.Name = "*";
PrincipalSearcher insPrincipalSearcher = new PrincipalSearcher();
insPrincipalSearcher.QueryFilter = insUserPrincipal;
PrincipalSearchResult<Principal> results = insPrincipalSearcher.FindAll();
foreach (Principal p in results)
{
Console.WriteLine(p.Name);
}
_ spPageContextInfoプロパティを使用して、現在ログに記録されているユーザーIDを取得することもできます。
_spPageContextInfo.userId
_ spPageContextInfoで現在のユーザーのIDを取得します。これをお試しください。