servicestack 我将如何创建自己的IUserAuthRepository实现?,servicestack,authentication,servicestack,Authentication" /> servicestack 我将如何创建自己的IUserAuthRepository实现?,servicestack,authentication,servicestack,Authentication" />

servicestack 我将如何创建自己的IUserAuthRepository实现?

servicestack 我将如何创建自己的IUserAuthRepository实现?,servicestack,authentication,servicestack,Authentication,我使用的是开箱即用的身份验证和服务堆栈,效果非常好。因此,现在,我正在使用以下代码行模拟一个用户,这些代码行取自ServiceStack示例: var userRep = new InMemoryAuthRepository(); container.Register<IUserAuthRepository>(userRep); string hash; string salt;

我使用的是开箱即用的身份验证和服务堆栈,效果非常好。因此,现在,我正在使用以下代码行模拟一个用户,这些代码行取自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");
var userRep=newinMemoryAuthRepository();
容器注册(userRep);
字符串散列;
弦盐;
new SaltedHash().GetHashAndSaltString(“test”,out hash,out salt);
userRep.CreateUserAuth(新UserAuth
{
Id=1,
DisplayName=“DisplayName”,
电子邮件=”as@if.com",
用户名=“约翰”,
FirstName=“FirstName”,
LastName=“LastName”,
PasswordHash=hash,
盐=盐,
}“测试”);

有什么方法可以定义userRep中的字段吗?例如,假设我想要字段portalid以及UserAuth对象的一部分?我该怎么做呢?我可以只修改InMemoryAuthRepository类吗?

您不能更改DTO的架构,但是它确实提供了一些扩展点,您可以使用
RefId
RefIdStr
字段来引用您自己的自定义表,或者通过向
Dictionary Meta
集合添加元数据来在UserAuth行中添加元数据。

我查看了这个示例,但我认为我没有完全理解。这可能是因为我幼稚的理解,但是用我选择的参数创建一个客户-用户会话对我有什么帮助?帮助你做什么?我只提到,您不能更改内置的UserAuth模式,只能使用上面描述的钩子对其进行扩展。