ServiceStack-UserAuth“ Id”为INT,而RavenDb希望“ Id”为STRING

时间:2018-08-16 14:56:14

标签: authentication servicestack ravendb

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

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

  

Message =无法在属性“ Id”上设置标识值“ UserAuths / 1-A”   对于类型'ServiceStack.Auth.UserAuth',因为属性类型不是   串。 Source = Raven.Client

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

1 个答案:

答案 0 :(得分:1)

Auth信息库至少必须实现IUserAuth,但是您可以使用自己的具体UserAuth表,而RavenDbUserAuthRepository可以通过使用通用RavenDbUserAuthRepository<TUserAuth, TUserAuthDetails>来使用。

例如:您可以使用自己的MyRavenDbUserAuthRepositoryMyUserAuth类创建自定义MyUserAuthDetails

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

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