今まで、.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で記載しているサンプルコード ...
続きを読む