私はAzure Active Directory(AAD)を使用して、ASP.Net MVC Webサイトにログインしているユーザーを認証しています。ホームページには、現在ログインしているユーザー情報が表示されるはずですが、ログインしたユーザーではなく自分の情報が常に表示されます。 Common.csという静的なクラスがあり、FirstName、LastName、およびNameが静的な文字列としてあります。私は、私が行方不明だし、なぜそれがで私の情報をキャッシュしているものAzure Active Directoryすべてのユーザーに対して同じ資格情報を取得しています
<div>
@{
var FirstName = MyWebsite.Models.Common.FirstName;
var LastName = MyWebsite.Models.Common.LastName;
var Name = MyWebsite.Models.Common.Name;
}
<p>FirstName = @FirstName</p>
<p>LastName = @LastName</p>
<p>Name = @Name</p>
</div>
わからないこのコードを持ってView.cshtmlfileで
static Common()
{
ClaimsIdentity myPrincipal = ClaimsPrincipal.Current.Identity as ClaimsIdentity;
Authinticated = myPrincipal.IsAuthenticated;
Name = myPrincipal.Name.ToString();
var myPrincipalType = myPrincipal.GetType();
if (myPrincipalType == typeof(ClaimsIdentity))
{
FirstName = myPrincipal.FindFirst(ClaimTypes.GivenName).Value != null? myPrincipal.FindFirst(ClaimTypes.GivenName).Value : "Test" ;
LastName = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Surname).Value;
Role = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Role)?.Value;
Name = ClaimsPrincipal.Current.FindFirst(ClaimTypes.Name)?.Value;
}
}
:ここ
は、私が使用しているコードです。ウェブサイト。