2012-01-09 66 views
4

我有兩個應用程序 - 一個是基於Rails構建的Ruby(v1.9.2),另一個基於ASP.Net構建的簡單報告應用程序結束一些Reporting Services報告。我想要做的是提供從Rails應用程序到ASP.Net Web應用程序的單一登錄類型的功能。有沒有辦法做到這一點?從ASP.Net Web應用程序中的Rails應用程序中消費用戶/認證信息

注意:我總是可以通過請求使用查詢字符串或一些這樣的機制將用戶信息傳遞給ASP.Net Web應用程序,但是這感覺有點骯髒。

回答

1

我假設你的問題涉及'最終用戶'的經驗。在這種情況下,您應該使用OAuth。基本上你需要支持以下工作流程:

  • 用戶將訪問.net報告應用程序。
  • 它會重定向用戶Rails應用程序,其中用戶將被要求訪問權限授予「他」的數據
  • 用戶,在接受,將被重定向回.net應用程序,用ouath令牌

此處Rails應用程序將作爲OAuth提供程序服務器,而作爲OAuth客戶端的網絡應用程序將作爲服務器提供。

這聽起來是矯枉過正,但這種方法有許多優點:

  • 您可以控制哪些應用可以訪問用戶數據
  • 明確使用行業標準的OAuth的角色和身份驗證
  • 的分離將允許其他人使用你的服務
  • 有很多OAuth庫,這將有助於其他語言
0

一個簡單的解決辦法是對同一個域中的兩個應用程序,但在不同的子域,例如:

  • reporting.mydomain.com
  • login.mydomain.com

然後有一個共享的cookie(將Cookie域設置爲.mydomain.com)。

然後,您的ASP.NET應用程序可以檢查您的Rails登錄應用程序(通過webservice/REST API)以從會話ID獲取用戶名和登錄狀態。

雖然我也認爲OAuth是一個偉大的路要走,這將工作:)

相關問題