0

js 用の Azure Active Directory Authentication Library を自分のサイトに統合しようとしています。SPA サンプルをダウンロードして、アプリの詳細で動作するようにしました。

ただし、ユーザー情報をサーバーに戻すにはどうすればよいですか?

たとえば、これはログインしているユーザーを取得するためのサーバー側のサンプル コードです。

string owner = ClaimsPrincipal.Current.FindFirst(ClaimTypes.NameIdentifier).Value;
IEnumerable<Todo> currentUserToDos = db.Todoes.Where(a => a.Owner == owner);

所有者の文字列は、読み取り可能なユーザー名または電子メール アドレス以外の GUID のようなトークンであることが判明しました。

このライブラリを直接使用してユーザー名または電子メール アドレスを取得する方法はありますか、それとも自分でサーバー側に送信する必要がありますか?

4

2 に答える 2

1

はい、adal-angular.js を介してクライアントからユーザー情報を直接取得できます。ユーザー情報は既に $rootScope に格納されています。userInfo を使用すると、Web サーバーからではなく、そこからユーザー情報を取得できます。

名前とメールアドレスを取得するコードは次のとおりです。

console.log($rootScope.userInfo.userName);
console.log($rootScope.userInfo.profile.name);
console.log($rootScope.userInfo.profile.upn);

以下は、参照用の userInfo オブジェクトの構造体の図です。 ここに画像の説明を入力

于 2016-09-16T08:31:40.113 に答える
1

ClaimTypes.NameIdentifier各ユーザーに固有の GUID です。読み取り可能なユーザー名または電子メール アドレスが必要な場合は、ClaimTypes.Emailまたはを試してくださいClaimTypes.Name

于 2016-09-21T18:42:51.300 に答える