0

私は 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 からこれらのことを学びました。確かに、何か足りないものがあります。ユーザーを認証するにはどうすればよいですか。方法を教えてください。よろしくお願いします

4

0 に答える 0