Как бы я занялся созданием собственной реализации 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
коллекция.