英語で読む

次の方法で共有


SharePoint でユーザーの ID とプロパティを取得する

ユーザー ID とユーザー情報を取得するには、取得する目的の情報によってさまざまな方法があります。 この記事では、これを行ういくつかの方法について説明します。

ユーザー ID とプロパティを取得するための前提条件

ユーザー ID とプロパティを取得するための中心概念の理解

次の表に、SharePoint アドインの作成に関する概念を理解するうえで役立つ記事のリストを示します。

記事 説明
SharePoint でのアドインのアクセス許可 SharePoint を操作するための SharePoint アドインのアクセス許可について説明します。アドインのアクセス許可の種類、アクセス許可要求範囲、およびアクセス許可の管理が含まれます。 この記事では、アドインのアクセス許可権限とユーザー権限の違いについても説明します。
SharePoint アドインのコンテキスト トークン OAuth フロー クラウド ホスト型アドインの OAuth 認証と承認フローについて説明します。
プロバイダー向けのホスト型 SharePoint アドインの作成を始める 基本的なプロバイダー向けのホスト型 SharePoint アドインを Office Developer Tools for Visual Studio を使用して作成する方法、SharePoint CSOM を使用して Microsoft SharePoint サイトと対話する方法、および SharePoint アドインに OAuth を実装する方法について説明します。

Web オブジェクトを使用して、現在の Web サイトのユーザー ID を取得します。

Web サイトの現在のユーザーの ID を取得する最も簡単な方法は、Web オブジェクトを使用する方法です。 プロジェクトの TokenHelper.cs ファイルで、次のコード スニペットを使用することにより、現在の Web サイトのユーザー ID を取得できます。

    ClientContext clientContext =
                TokenHelper.GetClientContextWithAccessToken(sharepointUrl.ToString(), accessToken);
    
                //Load the properties for the Web object.
                Web web = clientContext.Web;
                clientContext.Load(web);
                clientContext.ExecuteQuery();
    
                //Get the site name.
                siteName = web.Title;
    
                //Get the current user.
                clientContext.Load(web.CurrentUser);
                clientContext.ExecuteQuery();
                currentUser = clientContext.Web.CurrentUser.LoginName;

Office 365 を使用している場合、取得するサインイン名は i:0#.f|membership|adam@contoso.com のようになります。

オンプレミスの Microsoft SharePoint を使用していて、ユーザーが NTLM を使用して標準ユーザーとしてサインインしている場合、取得するサインイン名は i:0#.w|contoso\adam のようになります。

オンプレミスの SharePoint を使用していて、ユーザーがファーム アカウントを使用してサインインしている場合、取得するサインイン名は です SHAREPOINT\System

ResolvePrincipal メソッドを使用してユーザー ID を取得する

ユーザーのサインイン名を取得する別の方法を次に示します。 ユーザーの電子メール アドレスまたは表示名がわかっている場合は、ResolvePrincipal メソッドを使用してユーザーのサインイン名を取得できます。

注意

API は Microsoft.SharePoint.Client.dll アセンブリの Microsoft.SharePoint.Client.Utilities 名前空間にあります。

次のサンプル コードに、ユーザーのサインイン情報を取得する方法を示します。

    ClientResult<Microsoft.SharePoint.Client.Utilities.PrincipalInfo> persons = Microsoft.SharePoint.Client.Utilities.Utility.ResolvePrincipal(clientContext, clientContext.Web, <email>, Microsoft.SharePoint.Client.Utilities.PrincipalType.User, Microsoft.SharePoint.Client.Utilities.PrincipalSource.All, null, true);
                clientContext.ExecuteQuery();
                Microsoft.SharePoint.Client.Utilities.PrincipalInfo person = persons.Value;

Person.LoginName 値がサインイン情報を示します。

OAuth トークンとソーシャル フィーチャー API を使用してユーザー ID とプロファイル プロパティを取得する

ユーザーの ID とプロパティを取得するときは、OAuth トークンとソーシャル フィーチャー API を使用できます。 最初に OAuth トークンを取得し、そのトークンをクライアント コンテキストに設定します。

次のサンプル コードに、ユーザー プロファイル プロパティを取得する方法を示します。


    ClientContext clientContext = new ClientContext(<sharepointurl>);
    clientContext.AuthenticationMode = ClientAuthenticationMode.Anonymous;
    clientContext.FormDigestHandlingEnabled = false;
    clientContext.ExecutingWebRequest +=
    delegate(object oSender, WebRequestEventArgs webRequestEventArgs)
    {                      
        webRequestEventArgs.WebRequestExecutor.RequestHeaders["Authorization"] =
            "Bearer " + accessToken;
    };

次に、UserProfilesPeopleManager API を使用して、アドインを使用しているユーザーのプロパティを取得します。

    PeopleManager peopleManager = new PeopleManager(clientContext);
    PersonProperties personDetails = peopleManager.GetMyProperties();
    clientContext.Load(personDetails, personsD => personsD.AccountName, personsD => personsD.Email,  personsD => personsD.DisplayName);
                    clientContext.ExecuteQuery();

コードの動作条件:

  • SharePointにユーザー用のユーザー プロファイル共有サービスが構成され、同期されている必要があります。

  • ソーシャル フィーチャーに対する次のアクセス許可範囲をアドイン マニフェストに追加する必要があります。

        <AppPermissionRequest Right="Read" Scope="http://sharepoint/social/tenant" />
    
  • これらの API は Microsoft.SharePoint.Client.UserProfiles.dll にあります。

ユーザー プロファイル ストアへのアクセス方法を示すもう 1 つのサンプル コード スニペットを次に示します。

    ClientContext clientContext; //Create this like you normally would.               
    PeopleManager peopleManager = new PeopleManager(clientContext);
    PersonProperties myProperties = peopleManager.GetMyProperties();
    clientContext.Load(myProperties);
    clientContext.ExecuteQuery();

関連項目


その他のリソース

ドキュメント

トレーニング

モジュール

Microsoft Graph を使用してユーザーの写真情報にアクセスする - Training

Microsoft Graph を使用してユーザーの写真情報を取得するカスタム JavaScript アプリケーションを作成する方法について説明します。

認定資格

Microsoft Certified: Identity and Access Administrator Associate - Certifications

ID ソリューションの現代化、ハイブリッド ソリューションの実装、ID ガバナンスの実装を行う Microsoft Entra ID の機能を実証します。