我创建了一个用于身份验证的自定义用户表。当我尝试注册用户时,内置的registerervice.cs转到了UserAuth,所以
""ResponseStatus": {
"ErrorCode": "InvalidCastException",
"Message": "Unable to cast object of type 'ServiceStack.Auth.UserAuth' to type 'SOS.Api.ServiceModel.Types.User'.","
被抛出。我知道我可以扩展registerervice.cs,但我如何使用自定义的.cs?在AppHost.cs
Plugins.Add(new RegistrationFeature());
或其他什么?感谢。
答案 0 :(得分:3)
ServiceStack RegisterService与内置UserAuth
模型绑定,即:
[DefaultRequest(typeof(Register))]
public class RegisterService : RegisterService<UserAuth> { }
您需要提供自己的自定义注册服务来处理您可以注册的自定义Poco:
[DefaultRequest(typeof(Register))]
public class CustomRegisterService : RegisterService<CustomUserAuth> { }
由于这是一个不同的注册服务,您不想启用ServiceStack的内置RegistrationFeature:
//Plugins.Add(new RegistrationFeature()); //don't register this plugin
您应该在AppHost中手动注册您的服务:
this.RegisterService<CustomRegisterService>("/register");
this.RegisterAs<RegistrationValidator, IValidator<Register>>();
由于RegisterService相当轻量级,另一个选择是获取它的副本并修改它以引用您的CustomUserAuth POCO。