1

ServicestackAuthService专为 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();
}

又怎样?

4

1 回答 1

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) 中。在它发布之前,您必须从主 repo构建。

于 2012-07-03T08:07:07.053 回答