2011-10-17 85 views
0

再創建一個登錄頁面,我想創建外部直接鏈接其他登錄頁面(多個項目需要身份登錄頁面的外觀。)外部鏈接

這有可能創造登錄控制器中的另一個觀點或我需要創建另一控制器?我試圖創建另一個控制器,但我根本無法訪問。

有沒有人得到一些好點子?

乾杯

回答

0

如果使用相同的認證機制,可以只通過外部URL作爲參數

http://yourwebsite/Account/LogOn?returnUrl=<external url> 

,然後在身份驗證之後的頁面重定向到返回URL。

0

登錄返回到外部鏈接是一個壞主意。不要這樣做。請參閱Wrox Professional ASP.NET MVC 3書籍的第7章。 這被稱爲開放重定向攻擊。在ASP.NET MVC 3的模板中有用於帳戶控制器的代碼,用於阻止開放重定向,但允許它的風險是任何人都可以通過返回url查詢字符串中的惡意網址發佈鏈接到您網站的登錄地址。通過允許這種開放重定向,您可以讓您的網站訪問者傾向於進行社交工程。黑客可以向用戶發送鏈接到您的網站。他們點擊,看起來像您的網站,地址欄是正確的,該網站看起來很安全,證書不錯,所有。他們登錄後,他們被您的網站重定向到外部網址。外部網址可能有任何代碼在運行,並且可能會讓您的用戶容易受到任何數量的攻擊/ javascript攻擊。

我知道我特別提到MVC,但對於任何網站都是如此。

如果您需要另一個站點的登錄頁面,那麼您需要將控制器和視圖複製到該項目中,並在該項目中設置配置(您可以查看現有項目以獲取適當的設置) 。

您的站點是否都有相關的,使用相同的用戶?還是他們分開不同的網站?如果它們都是相關的,你可以把它們放在一個項目中嗎?這樣,你可以使用一個成員資格提供商和數據庫,以及不同的控制器/視圖文件夾爲您的網站的不同部分?

或者你是否在可以使用Windows身份驗證並跳過顯示登錄頁面的域中?

或者你想要像Azure或STS服務器中的ACS那樣的應用程序上的單一登錄,或者什麼。 (在WIF上尋找好的/現代的書,如果是這樣,討論ACS 2.0)