2013-10-24 64 views
1

我正在設計一個Web應用程序,並將應用程序分爲兩個Web項目,一個MVC項目和一個WebAPI項目。 MVC項目部署到綁定到http://mysite.com/app的虛擬主機。 WebAPI項目作爲MVC應用程序的子應用程序進行部署,並綁定到http://mysite.com/app/Data。這種分離的原因是,WebAPI站點可以打包爲數據層的獨立程序集,而MVC站點則用作表示層。MVC應用程序和WebAPI子應用程序的身份驗證

身份驗證和授權在頂級MVC應用程序中按預期工作,但不在WebAPI子應用程序中。我會希望子應用程序與其父項共享相同的HttpContext。我誤解了這個嗎?

有沒有辦法將父應用程序和子應用程序連接在一起,以便它們使用相同的授權上下文?

+0

您使用的是哪種形式的身份驗證? OAuth,Windows,Forms? – ianaldo21

+0

另外,您應該無法將兩個應用程序身份驗證上下文綁定在一起,因爲這些技術上是2個獨立的應用程序。 – ianaldo21

回答

3

我不認爲HttpContext可以在兩個應用程序之間共享。

由於兩個應用程序在同一個域中,因此可以在它們之間共享cookie認證。以下是關於爲兩個應用程序共享Cookie的MSDN link

我不覺得有必要在這裏使用兩個應用程序。你可以把所有的web api相關的代碼放在另一個程序集中,並讓MVC應用程序引用它。

+0

將兩個應用程序合併爲一個並僅引用程序集是一個更好的解決方案。謝謝!該數據項目最初是作爲WCF項目開始的,但隨着WebAPI OData支持得到增強,變成了WebAPI項目,所以我從來沒有考慮過這個問題。 –

相關問題