2012-12-15 172 views
2

我正在開發需要訪問託管在與我的網站相同的域上的REST Web服務的Chrome插件。 Web服務要求用戶登錄。該網站提供帳戶註冊和身份驗證。我希望能夠從插件訪問Web服務,而不需要用戶在登錄到網站時再次從插件登錄。我不知道如何做到這一點。我正在使用ASP.NET MVC4爲網站提供的表單身份驗證。 Chrome瀏覽器插件當然使用JavaScript的XMLHttpRequest客戶端來調用Web服務。使用現有站點身份驗證的Chrome擴展身份驗證

有很多插件可以做到這一點。 'Delicious Bookmarks Extension'和'Add to Amazon.com Wishlist'就是一個例子。

+0

您是否找到了解決問題的方法? –

回答

1

我沒有找到辦法以我想要的方式做到這一點。出於安全原因,Chrome瀏覽器不會出於某種原因將一個網站的Cookie發送到另一個網站,即使其中一個「網站」在技術上只是Chrome擴展程序。

我最終將插件的需要身份驗證的部分轉換爲已登錄到的網站提供的iframe。這可讓Chrome在請求iframe來源時發送Cookie。這就是Delicious和Amazon.com插件的工作原理。幾乎沒有代碼在擴展中運行,它大部分都是由iframe中的頁面提供的。

+1

你能提供更多關於你如何做到的細節嗎?我的擴展在一個彈出窗口中有一個iframe,但儘管使用我的憑據從chrome瀏覽器窗口登錄到該網站,但打開彈出窗口仍然無效。我使用javascript注入DOMContentLoaded上的iframe的src。 – hazymat