2012-02-29 47 views
0

我有兩個Web應用程序。一個用於集中式圖像服務器。
假設它們是a.com和b.com
b.com適用於圖像服務器。
和a.com是我的應用程序託管的地方。
我爲圖像ob b.com創建了一個處理程序,用於處理請求並添加水印並將其發送回a.aspx。
我正在將圖像的路徑(絕對像http://b.com/ImageHandler.ashx?id=imageurl)傳遞給b.com上的處理程序
現在我無法驗證b.com上的請求
現在我正在考慮處理b的Handler。 com
應該在a.com
因爲在a.com我可以很容易地驗證用戶。


爲此,我是否需要a.com和b.com上的處理程序
或者有什麼方法可以在b.com上對用戶進行身份驗證。在a.com上有會話的 。 我無法訪問b.com上的每個請求的數據庫,因爲圖像的請求數量非常大。
希望我能夠正確解釋我的問題。圖像服務器安全性asp.net HTTP處理程序

+0

您是否試圖:a /只確保a.com的授權用戶可以在b.com上看到他們自己的圖像,或者b /只確保b.com上的圖像可以通過a.com請求? – dash 2012-02-29 09:24:16

+0

這很複雜。是不是可以做一個HttpWebRequest a.com(圖像服務器)處理程序檢索圖像作爲響應?你說什麼......你可以試試 – Dinesh 2012-02-29 16:19:20

+0

,因爲圖像在b.com(物理存儲),我必須得到在圖像上寫文本的物理地址(我認爲)。文件夾共享是@vinayC給我的選項之一。我可以將網址轉換爲圖片嗎?如果我知道圖像的相對路徑。 – 2012-03-01 04:43:19

回答

1

您需要先評估將圖像服務器放在不同的域下是否有意義。如果所有關於在多個站點之間共享相同的代碼,那麼通過在站點之下放置處理程序並通過類庫共享相關的代碼將會更好。

在不同的域上有處理程序可以有合理的理由。例如,它可能需要不同級別的擴展,可能需要資源,並且希望將其隔離到不同的計算機(在相同的域下可能隔離到不同的應用程序池),或者由於某些許可問題(您想要保存處理程序使用的某些庫的基於處理器的許可成本)。

如果將要有不同的域,那麼你可以把它們作爲子域。例如 - a.xyz.com和b.xyz.com。在這種情況下,相同的身份驗證票證(在父域即xyz.com上發佈)對於兩者都是足夠的。見domain property for Forms Authentication Cookie來控制這一點。

您還需要詢問驗證是否適合您的圖像處理程序。你想讓它開放還是限制某些用戶?如果您只想驗證用戶,並且想要支持多個應用程序,那麼您正在考慮支持多個應用程序的用戶集。如果它是相同的用戶集合(例如活動目錄),那麼你的工作將會更簡單 - 只有一個身份驗證提供者,其票證將被您的站點和所有其他應用程序信任[Windows身份驗證在類似基礎上工作]。

如果它的用戶多樣化,那麼它基本上意味着對於映像服務器,您需要擁有多個需要信任的身份驗證提供程序。你可能需要看看一些Federated Identity系統 - 看到這樣的一個。這裏討論的基於NET的實現:http://msdn.microsoft.com/en-us/magazine/ff872350.aspx

+0

在我以後告訴a.com的問題中,我將有許多應用程序,如c.com等訪問相同的圖像服務器。我也想限制直接訪問b.com圖像。如果請求對象來自我的web應用程序a.com,那麼我可以檢查請求對象以檢查請求來自哪裏,那麼它應該提供請求,如果不是,則不應該提供請求。 – 2012-02-29 09:49:33

+0

@krshekhar,我假設你從請求中談到引用領域!依靠這樣的領域可能會有問題,因爲任何人都很容易製造假冒請求。此外,我不確定電話來自b.com的來源。到目前爲止,我假設它來自瀏覽器,但如果通過a.com服務器代碼(而不是瀏覽器)直接訪問b.com,那麼您確實沒有太多身份驗證問題 - 只需確保該調用即可到b.com使用正確的用戶憑據。 – VinayC 2012-02-29 10:46:49

+0

早些時候我在b.com上創建了http處理程序,現在我想移動a.com上的處理程序(用於驗證檢查)。但爲了在圖像上寫文本,我需要圖像的絕對路徑(「C:/ Images/...」),只能在b.com上獲取(我認爲)。所以我需要在這兩個應用程序中使用處理程序。一個用於寫文本(在b.com上),另一個用於驗證用戶(在a.com上)。我也想知道如何將apache上的http請求映射到圖像上。這樣做會影響多少性能。 – 2012-02-29 11:04:42