4

MongoDB ドライバーのドキュメントは、NuGet から取得した実際のドライバーとは異なるようです。

より具体的には、文書化された「MongoCredentials」(複数)は存在せず、「MongoCredential」(単数)のみが存在します。さらに、MongoServer.GetDatabase には、MongoCredential を受け入れるコンストラクターがないようで、MongoDatabaseSettings (データベースに名前を付ける文字列に沿って) のみがあり、MongoDatabaseSettings オブジェクトに MongoCredential オブジェクトを与える明確な方法はありません。

ドライバーで見つけたオブジェクトの例を Google で見つけたことがありません。(古い?) 公式ドキュメントと一致するものだけです。

私が使用しているドライバーは、(NuGet パッケージ マネージャーで) 「公式 MongoDB C# ドライバー」と呼ばれています。

要約すると、C# ドライバーで資格情報を実際に提供するにはどうすればよいでしょうか。

4

1 に答える 1

7

また、NuGet バージョン 1.8.3のOfficial MongoDB C# ドライバーも使用しています。

確かに、CSharp ドライバー チュートリアルは時代遅れのようです。

ただし、API ドキュメントは正しいです。MongoCredential クラス(単数形)のエントリがあります。

コンストラクターまたはいずれかの静的ファクトリ メソッド ( CreateGssapiCredentialまたはCreateMongoCRCredential )を使用して資格情報を作成できます。

GetDatabase()次に、資格情報を使用するために、呼び出しでそれらを指定することはできませんが、以前は、次のように Server を作成するときに指定します。

var db1Credential = MongoCredential.CreateMongoCRCredential("db1", "uid", "pwd");
var db2Credential = MongoCredential.CreateMongoCRCredential("db2", "uid", "pwd");

var server = new MongoServer(
    new MongoServerSettings
        {
            Server = new MongoServerAddress("localhost", 27017),
            Credentials = new[]
                            {
                                db1Credential,
                                db2Credential
                            }
        });
于 2013-10-25T08:09:04.267 に答える