Как бы я занялся созданием собственной реализации IUserAuthRepository?

Я работал с готовой аутентификацией, со стеком обслуживания, и он прекрасно работает. Итак, прямо сейчас я придумываю пользователя следующими строками кода, взятыми из примеров ServiceStack:

            var userRep = new InMemoryAuthRepository();
            container.Register<IUserAuthRepository>(userRep);
            string hash;
            string salt;
            new SaltedHash().GetHashAndSaltString("test", out hash, out salt);
            userRep.CreateUserAuth(new UserAuth
            {
                Id = 1,
                DisplayName = "DisplayName",
                Email = "as@if.com",
                UserName = "john",
                FirstName = "FirstName",
                LastName = "LastName",
                PasswordHash = hash,
                Salt = salt,
            }, "test");

Есть ли каким-то образом я могу определить поля в userRep? Например, допустим, я хочу иметь поле portalid, а также часть объекта UserAuth? Как бы я поступил так? Могу ли я просто изменить класс InMemoryAuthRepository?

1 ответ

Вы не можете изменить схему встроенных DTO UserAuth ServiceStack, но она предоставляет несколько точек расширения, которые подробно описаны в этом ответе, где вы можете использовать RefId а также RefIdStr поля для ссылки на ваши собственные пользовательские таблицы или добавить метаданные в строку UserAuth, добавив метаданные в Dictionary<string,string> Meta коллекция.

Другие вопросы по тегам