我正在尝试为RavenDb实现ServiceStack身份验证和授权。 ServiceStack UserAuth模型的属性“ Id”为Int,而RavenDb的“ Id”除外为String。
当我尝试创建新用户时,出现以下异常:
Message =无法在属性“ Id”上设置标识值“ UserAuths / 1-A” 对于类型'ServiceStack.Auth.UserAuth',因为属性类型不是 串。 Source = Raven.Client
我可以实现忽略ServiceStack UserAuth表的custom_UserAuth表吗?那是唯一的方法吗?
答案 0 :(得分:1)
Auth信息库至少必须实现IUserAuth,但是您可以使用自己的具体UserAuth表,而RavenDbUserAuthRepository可以通过使用通用RavenDbUserAuthRepository<TUserAuth, TUserAuthDetails>
来使用。
例如:您可以使用自己的MyRavenDbUserAuthRepository
或MyUserAuth
类创建自定义MyUserAuthDetails
:
public class MyRavenDbUserAuthRepository
: RavenDbUserAuthRepository<MyUserAuth, MyUserAuthDetails>, IUserAuthRepository
{
public RavenDbUserAuthRepository(IDocumentStore docStore) : base(docStore) { }
}
否则,看起来RavenDB可以让您customize which property to use as its Identity。