今まで、.Net Frameworkでは【Microsoft.SharePoint.Client.Online.CSOM】で実装していましたが、今回.Net 7.0で同じように実装しようしましたが少し違いがあったのでその時のメモです
CSOMパッケージのインストール
.Net 7.0だと【Microsoft.SharePoint.Client.Online.CSOM】は使えないので、
【Microsoft.SharePointOnline.CSOM】というパッケージをNugetからインストールします。名前は似ていますが、SharePointOnlineCredentials等が使えません
Azureアプリ
本ブログで何度も実施しているAzureアプリを作成、設定を実施していきます
Azureアプリの作成
Azureにアクセスし、上部にある検索窓に「アプリの登録」と入力すると下画像のように表示されるので「サービス」>「アプリの登録」をクリック

「新規登録」をクリック

【名前】に「SharePointCSOM」と入力し、【サポートされているアカウントの種類】を「この組織ディレクトリのみに含まれるアカウント」を選択、それ以外は設定はそのままに「登録」ボタンをクリック

アプリの設定
クライアントで使えるように「認証」>「パブリッククライアントフローを許可する」を【はい】にして、下にある「保存」をクリック

アクセス許可の追加
CSOMからアクセストークンを取得できるようにAPI許可を設定します
作成したAzureアプリの「APIのアクセス許可」>「アクセス許可の追加」>「SharePoint」の順番でクリック

「委任されたアクセス許可」をクリックし、今回は「AllSites.Manage」を付与します

「~に管理者の同意を与えます」をクリックし、「~に付与されました」となればOK

実際にCSOMを使う
実際にCSOMのClientContextクラスの初期化は以下のMSドキュメント上にあるAuthenticationManagerクラスをそのまま使用しています
ただ、tokenEndpoint変数とdefaultAADAppId変数は使用する環境に合わせて変えてください
-
-
CSOM for .NET Framework の代わりに CSOM for .NET Standard を使用する | Microsoft Learn
CSOM for .Net Standard の使用と CSOM for .Net Framework の使用の違いにつ ...
続きを読む
tokenEndpoint変数の値の確認方法
今回作成したAzureアプリの概要の上部にある「エンドポイント」をクリック

様々なエンドポイントが表示されている中から【OAuth 2.0 トークン エンドポイント (v1)】の値をコピーしてtokenEndpoint変数に設定します

defaultAADAppId変数の値の確認方法
今回作成したAzureアプリの概要にある【アプリケーション(クライアント…)】の値をコピーしてdefaultAADAppId変数に設定します

最期に
今回はCSOMを.Net 7.0で呼び出す際の認証の仕方を紹介しました
contextの初期化の方法だけが違いそれ以降の処理は.Net Frameworkのときと変わりありません
今回のコードもGitHubにアップしているので参考にしてください
-
-
BlogSampleCodeProjects/CSOMHelper at main · nasuton/BlogSampleCodeProjects · GitHub
Project for sample code used in the blog.(Blogで記載しているサンプルコード ...
続きを読む
会社紹介
私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています
会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造
この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています
ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します
-
-
アドバンスド・ソリューション株式会社
アドバンスド・ソリューションは主にMicrosoft製品を使用して、企業の生産性向上に取り組んでいます。要件定義から導入 ...
サイトへ移動