私は ravendb を初めて使用します。私の理解不足をお許しください。まず、createUser 関数を作成しました。この関数では、2 つのデータベース (db1 と db2 という名前) をユーザーに許可しました。
public void createUser(DocumentStore documentStore, string userName, string password)
{
using (var session = documentStore.OpenSession())
{
AuthenticationUser user1 = new AuthenticationUser
{
Name = userName,
Id = "Raven/users/NewUser",
AllowedDatabases = new[] { "db1", "db2" },
Admin = true,
}.SetPassword(password);
session.Store(user1);
session.SaveChanges();
}
}
ユーザーを作成した後、資格情報を使用してそのデータベースにドキュメントを作成したかったのですが、正しい資格情報を与えた後、「リモート サーバーがエラーを返しました: (401) 権限がありません」という例外が発生します。
public CreateDocumentResult CreateDocument(DocumentStore documentStore,string databaseName, string collectionName, string documentName)
{
NetworkCredential credential = new NetworkCredential("raj", "raj");
//documentStore.Credentials = credential;
var doc = documentStore.DatabaseCommands.ForDatabase(databaseName,credential);
var docExist = doc.Get(documentName);
DefaultD defaultDocument = new DefaultD();
if (docExist == null)
{
using (var session = documentStore.OpenSession(databaseName,credential))
{
Guid etag;
etag = Guid.NewGuid();
RavenJObject metadata=new RavenJObject();
metadata.Add("Raven-Entity-Name", collectionName);
createDocumentResult.FinalDocument=session.Advanced.DatabaseCommands.Put(documentName, etag, RavenJObject.FromObject(defaultDocument), metadata);
session.SaveChanges();
}
}
Ravendb authentication Video からこれらのことを学びました。確かに、何か足りないものがあります。ユーザーを認証するにはどうすればよいですか。方法を教えてください。よろしくお願いします