Active Directoryのユーザーの名前のみを表示する必要があり、使用しています
lbl_Login.Text = User.Identity.Name; //the result is domain\username
ユーザー名は表示されますが、ユーザーの本名は表示されません。ここで関連する他の質問と回答を確認しましたが、解決策がわかりません。
ユーザーの名前のみを取得するための「User.Identity.Name」のようなプロパティはありますか?
Active Directoryのユーザーの名前が必要です。次のようなコードを試してください:
string name ="";
using (var context = new PrincipalContext(ContextType.Domain))
{
var usr = UserPrincipal.FindByIdentity(context, User.Identity.Name);
if (usr != null)
name = usr.DisplayName;
}
または、これは social.msdn.Microsoft.com から:
PrincipalContext ctx = new PrincipalContext(ContextType.Domain);
UserPrincipal user = UserPrincipal.Current;
string displayName = user.DisplayName;
またはそれかもしれません:
System.DirectoryServices.AccountManagement.UserPrincipal.Current.DisplayName;
System.DirectoryServices.AccountManagement名前空間 は、複数のプリンシパルストア(Active Directoryドメインサービス(AD DS)、Active Directoryライトウェイトディレクトリサービス(AD) LDS)、およびマシンSAM(MSAM)。
using System.DirectoryServices.AccountManagement;
string fullName = null;
using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
using (UserPrincipal user = UserPrincipal.FindByIdentity(context,"hajani"))
{
if (user != null)
{
fullName = user.DisplayName;
lbl_Login.Text = fullName;
}
}
}