在使用我的应用注册新用户时遇到了一个问题。这种行为看起来是设计的,但我不明白为什么。
我的问题如下(我知道这有点边缘情况):
第二个用户的详细信息将覆盖登录用户的UserAuth记录,而不是创建新用户,而第一个用户无法再登录。
查看ServiceStack.ServiceInterface.Auth.RegistrationService中的代码,此行为似乎是100%故意的:
var session = this.GetSession();
var newUserAuth = ToUserAuth(request);
var existingUser = UserAuthRepo.GetUserAuth(session, null);
var registerNewUser = existingUser == null;
var user = registerNewUser
? this.UserAuthRepo.CreateUserAuth(newUserAuth, request.Password)
: this.UserAuthRepo.UpdateUserAuth(existingUser, newUserAuth, request.Password);
第一个用户登录后,该用户的会话cookie随注册请求一起发送,导致上述代码中的existingUser变量填充该用户的UserAuth,然后使用注册用户进行更新的信息。
有谁可以解释为什么代码是用这种方式编写的?如果不用我自己的实现替换RegistrationService,有什么方法吗?
答案 0 :(得分:0)
此功能允许您将不同的Auth Providers自动合并到ServiceStack中的同一帐户。