登录.cshtml
....
<form action="/auth/credentials">
<div>
<span>User Name</span>
<input name="userName" type="text"/>
</div><div>
<span>Password</span>
<input name="password" type="password"/>
</div><div>
<input name="RememberMe" type="checkbox" checked value="true"/>
<span>Remember me</span>
</div><div>
<button class="login">Sign in</button>
</div>
</form>
....
登录服务.cs
[DefaultView("login")]
public class LoginService : BaseService {
public object Get(Login req) {
return new LoginResponse() { UserSession = base.UserSession };
}
}
BaseService.cs
....
public CustomUserSession UserSession {
get {
return SessionAs<CustomUserSession>(); // **** Error here ****
}
}
....
错误消息在SessionAs<CustomUserSession>();
用户代码未处理 InvalidCastException
无法将“ServiceStack.ServiceInterface.Auth.AuthUserSession”类型的对象转换为“MyProject.CustomUserSession”类型。
我有一个简单的 html 表单login.cshtml
来测试凭据身份验证功能。该代码模仿了 SocialBootstrapApi 演示项目的凭据身份验证功能部分。
在我从 NuGet 更新 SS 之前:(大约 40 天前的软件包)
如果 html 表单有RememberMe div
,SessionAs<CustomUserSession>();
会遇到InvalidCastException
错误。否则,它可以很好地与 justUserName
和Password
div 一起使用。
在我从 NuGet 更新 SS 之后:(今天 11 月 4 日更新包 v3.9.25.0)
SessionAs<CustomUserSession>();
InvalidCastException
即使 html 表单中只有UserName
和Password
div 也总是会遇到错误。
我不确定我在铸造过程中做错了什么。请帮忙。