2

在我工作时,我还需要在特定条件下Asp.Net MVC 4 Web API返回一个视图。我的流程如下:

  1. 第三方应用程序将调用我的 Web API 方法。(例如用户认证)
  2. 如果有有效的凭据,我需要将 HTTP 状态返回为 SUCCESS (200)
  3. 如果用户无效,我需要从同一个 MVC 应用程序返回一个 VIEW(登录视图)来请求凭据。(在视图中会有一个“注册”链接)

所以关键是,这是否可以通过相同的 WEB API 方法在不同的条件下同时返回 theLOGIN View (html)和 a ?WebResponse Status (200)

提前致谢。

4

2 回答 2

3

你可以做两件事:

  1. AuthorizeAttribute在 Jon Galloway 的教程中使用:WebAPI入门
  2. 如果需要,将您的响应数据包装起来HttpResponseMessage并重定向用户。例如:

    var responseMessage = new HttpResponseMessage<Stock>(null, HttpStatusCode.RedirectMethod);
    responseMessage.Headers.Location = new Uri("http://www.mysite.com/login");
    
    return responseMessage;
    
于 2012-05-17T19:26:10.783 回答
0

你应该可以,只要你的方法的返回类型是ActionResult. 毕竟,Web API 只是从 Controller 派生的。但更大的问题是:您的客户能否处理同一个问题的不同答案?也许您应该在成功时返回 200 而在“去询问其他方法以获得视图”时返回非 200。

于 2012-05-17T18:13:32.193 回答