1

Azure DocumentDB への接続時に使用される認証キーのレベルを確認する方法があるかどうか疑問に思っていました。

主に、読み取り専用の認証キーが提供されたときにドキュメントを作成したり変更したりする試みを防ぐためです。

の線に沿った何か

static async void LogIn(string url, string authKey)
{
    DocumentClient client = new DocumentClient(new Uri(url), authKey);
    if(?clientpermissions?== PermissionMode.Read)
    { Console.WriteLine("You are in read-only mode."); }
}

ユーザー クラスにはアクセス可能なパーミッション オブジェクトがあることがわかりますが、純粋に認証キーを使用する場合は少し迷ってしまいます。

ドキュメントを作成して例外があるかどうかを確認することを検討しましたが、条件が悪い習慣のように思われるため、失敗を使用するのはあまり好きではありません。

ここでの目標は、ドキュメント データベースを管理するための一種のツールです (既にいくつか存在することは知っていますが、これは私のスキルの練習です)。したがって、これらの行に沿って、誰かが与えられたキーを使用してデータベースにアクセスしようとすると、rw キーが与えられる場合と与えられない場合があり、パーミッションもわからない可能性があります。理想的には、ラベルまたはインジケータを表示して、アクセス レベルを示すことができます。ありがとう!

4

1 に答える 1

0

クライアントは認証キーで構成されており、その時点でそれに関する情報はありません。ただの文字列です。

DocumentClient.ReadPermissionAsyncメソッドを利用して、リソースのアクセス許可を取得できる場合があります。私はこれを最初に試したことはありませんが、探索するのは良いかもしれません.

ただし、元のドキュメントの読み取り/書き込みを試みて、権限が制限されているために該当する場合は例外をキャッチすることもできます。これは、権限を取得するためだけにリクエストを行う必要があるためです。

なぜあなたが何をしているのかはわかりませんが、一歩下がって、あなたが望む読み取り/書き込み操作のための正しいキーを持っていることを確認できるかどうか自問してみてください.する。

HTH

于 2015-01-22T03:12:20.080 に答える