2014-10-02 42 views
0

我打算使用ASP.NET Web Api製作一個寧靜的Web服務。許多ASP.NET MVC Web應用程序和可能的本地應用程序都將使用該服務。該服務將使用ASP.NET身份來授權請求​​/用戶。我可以通過爲每個請求傳遞一個令牌來看到如何使用本地應用程序的服務。通過調用外部ASP.NET Web Api服務驗證ASP.NET MVC Web應用程序中的用戶

我的問題是任何使用該服務的ASP.NET MVC應用程序,在向服務發出請求後如何將用戶標記爲已登錄?

這是我想要的,可能嗎?

  • 用戶沒有登錄,重定向到登錄頁面
  • 用戶提交表單這就要求MVC控制器應用
  • 控制器使得Web服務
  • Web服務返回的調用用戶的ID,名稱和角色(JSON也許?)
  • 這就是我卡住的地方:ASP.NET MVC Web應用程序隨後將用戶標記爲登錄整個MVC Web應用程序。該角色將用於任何控制器/操作的任何授權屬性。 ASP.NET MVC Web應用程序還可以通過cookie記住用戶,並將來自動登錄。
+0

不是什麼大問題,但它是ASP.NET MVC,而不是ASP MVC。 – 2014-10-03 01:01:31

+0

謝謝,我已經糾正它 – Connel 2014-10-03 07:29:16

+0

我認爲你在做什麼是可能的。當MVC應用程序從webapi調用獲得肯定/肯定的響應時,請在MVC應用程序的控制器的操作中設置一個cookie。但是您可能需要考慮取消cookie並在webapi端設置一些東西,例如生成的令牌,然後在MVC應用程序的每個請求上使用此令牌來檢查授權。有點解決方案的單一標誌的前兆。 – 2014-10-03 09:07:42

回答

0

要設置你只需要餅乾:

FormsAuthentication.SetAuthCookie(USERNAME, true /*rememberMe*/); 

這解決您的驗證問題。授權 - 確定用戶可以做什麼和不可以做什麼 - 是另一回事。您需要緩存用戶在某處的角色,並根據需要進行檢查。

相關問題