2012-05-17 102 views
2

由於我在Asp.Net MVC 4 Web API上工作,我還需要返回對特定條件的查看。我的流程如下:從Asp.Net MVC 4返回視圖Web API

  1. 第三方應用程序將調用我的Web API方法。 (例如,用戶身份驗證)
  2. 如果有一個有效的憑證,我需要返回是成功的HTTP狀態(200)
  3. 如果用戶是無效的,我需要從同一個MVC應用程序返回一個VIEW(登錄查看)要求認證。 (在視圖中會有一個「註冊」鏈接)

所以問題是,這是可能返回兩個LOGIN View (html)和相同的Web API的方法在不同的條件下一個WebResponse Status (200)

在此先感謝。

+0

你可能會更好用返回重定向URL到您的視圖的結果。 – jrummell

回答

3

你可以做兩件事情:

  1. 使用AuthorizeAttribute像喬恩·加洛韋的教程:Getting started with WebAPI
  2. 包裝您的響應數據HttpResponseMessage,如果需要重定向用戶。例如:

    var responseMessage = new HttpResponseMessage<Stock>(null, HttpStatusCode.RedirectMethod); 
    responseMessage.Headers.Location = new Uri("http://www.mysite.com/login"); 
    
    return responseMessage; 
    
0

如果您的方法返回類型爲ActionResult,您應該可以。畢竟,Web API只是從Controller派生而來。但更大的問題是:你的客戶可以處理同樣問題的多樣性答案嗎?也許你應該回到200成功和非200「去問問其他方法的觀點」。