Servicestack的AuthService
专为REST风格的http响应而设计。因此
AuthService.Post(auth)
返回HttpResult
。因此您可以通过JQuery + Ajax轻松使用它。
但是如果你想将它与经典的Asp.Net MVC一起使用:
public ActionResult Login(Auth auth)
{
HttpResult result = (HttpResult)AuthService.Post(auth);
// YOU HAVE TO CHECK IF LOGIN SUCCESSFUL THAN
// IF SUCCESSFUL YOU HAVE TO REDIRECT IF IT HAS REDIRECTURL PARAMETER
//if (result.StatusCode == System.Net.HttpStatusCode.Found)
return View();
}
那怎么样?
答案 0 :(得分:2)
我刚刚重新设计了AuthService并添加了Authenticate()方法,以便更容易从C#调用。
返回null意味着用户已经过身份验证(并且没有尝试过)。返回非null意味着用户身份验证成功。任何身份验证失败都会引发异常。
通过此更改,您现在可以执行以下操作:
public ActionResult Login(Auth auth)
{
try {
AuthResponse result = AuthService.Authenticate(auth);
var alreadyAuthenticated = result == null;
return alreadyAuthenticated
? View("success")
: View("alreadyAuthenticated");
} catch(Exception ex) {
return View("authError");
}
}
这些更改将在NuGet上的下一版ServiceStack(v3.84)中进行。在发布之前,您必须从main repo构建。