authentication - ServiceStack - UserAuth "Id"是 INT,而 RavenDb 预计 "Id"是 STRING

标签 authentication servicestack ravendb

我正在尝试为 RavenDb 实现 ServiceStack 身份验证和授权。 ServiceStack UserAuth 模型的属性“Id”为 Int,而 RavenDb 除外“Id”为 String。

当我尝试创建新用户时,出现以下异常:

Message=Cannot set identity value 'UserAuths/1-A' on property 'Id' for type 'ServiceStack.Auth.UserAuth' because property type is not a string. Source=Raven.Client

我可以实现一个忽略 ServiceStack UserAuth 表的 custom_UserAuth 表吗?这是唯一的方法吗?

最佳答案

身份验证存储库必须至少实现 IUserAuth但您可以使用自己的具体 UserAuth 表,这就是 RavenDbUserAuthRepository允许使用通用 RavenDbUserAuthRepository<TUserAuth, TUserAuthDetails>

例如:您可以创建自定义 MyRavenDbUserAuthRepository使用您自己的MyUserAuthMyUserAuthDetails类(class):

public class MyRavenDbUserAuthRepository 
  : RavenDbUserAuthRepository<MyUserAuth, MyUserAuthDetails>, IUserAuthRepository
{
    public RavenDbUserAuthRepository(IDocumentStore docStore) : base(docStore) { }
}

否则看起来 RavenDB 可以让你 customize which property to use as its Identity .

关于authentication - ServiceStack - UserAuth "Id"是 INT,而 RavenDb 预计 "Id"是 STRING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51880011/

相关文章:

Android:记住我不工作

asp.net - 更改 ASP.NET 登录数据库

url-routing - 路由可以以变量开头吗?

c# - 如何使用 RefIdStr 和 RavenDB 扩展 ServiceStack UserAuth

RavenDb:执行修补或添加附件时,OnBeforeStore/OnAfterSaveChanges 不会触发

ravendb - 当 NServiceBus 尝试安排超时时,Raven 返回 400 "Request Too Long"错误

linq - 将 Expression<Func<T, bool>> 发送到 Where() 扩展方法时,Ravendb Session.Query<T>() 方法不返回任何结果

ruby-on-rails - 分布式系统的认证和授权

javascript - 有没有办法使用 Web 身份验证 API (WebAuthn) 获取 U2F 设备的稳定唯一标识符?

asp.net-web-api - ServiceStack 日志记录和 SSE 在单个界面中?