2017-12-06 5 views
0

エラー:MongoDBのパスワードmongoDBの特別チャレンターの問題?

でパスワード特殊文字の問題

コード:ここで

connstr="mongodb://test:[email protected]@67.186.193.192:27017/testdb" 

i "は、テスト%4123" に "123 @テスト" パスワードを変更しました。 @ ASCIIコードは%4です。 これでうまくいきました。

MongoClient client = new MongoClient(connstr); //vss 
var server = client.GetServer(); 

//server.Ping(); 
var db = client.GetDatabase(dbname); 
List<KeyValuePair<string, string>> collections = new List<KeyValuePair<string, string>>(); 
var tableviewset = JArray.Parse(db.ListCollectionsAsync().Result.ToListAsync<BsonDocument>().Result.ToJson()); 

しかし、あなたはこのように気にいらを行うことができますか?

+0

@ serpent5パスワードの問題が見つかりました。だから私は上記の質問のための解決策が必要です... –

+1

明らかにURLをエンコードします... Googleを読んで、Google、分析して実行してください... –

+0

どこからユーザー名、パスワードなどが来ますか?それらは設定ファイルにありますか? –

答えて

0

、ユーザーのMongoClientSettingsをすることができます私は何をすべきか、このような状況ではので、私のユーザーは、など...(^、*、$のように異なるパスワードを使用します。パスワードおよびその他のすべてのパラメータのその後

private MongoClientSettings GetSecuritySettingForConnection() 
     { 
      MongoClientSettings settings = new MongoClientSettings(); 
      settings.Server = new MongoServerAddress(host, port); 
      MongoIdentity identity = new MongoInternalIdentity(authenticationDatabase, userName); 
      MongoIdentityEvidence evidence = new PasswordEvidence(password); 
      settings.Credentials = new List<MongoCredential>() 
      { 
       new MongoCredential("SCRAM-SHA-1", identity, evidence) 

      }; 
      settings.MaxConnectionIdleTime = new TimeSpan(0, 2, 0); 
      return settings; 
     } 

することはできこっちにこの機能:。

var client = new MongoClient(GetSecuritySettingForConnection()); 

混乱があれば教えてください。