2012-09-15 37 views
0

我希望在asp.net網站中使用表單身份驗證,但沒有特定的登錄頁面。 相反,我想讓我的用戶通過屏幕右上角的DIV部分登錄。此外,我希望這個DIV部分將使用SSL。asp.net不使用登錄頁面使用SSL進行身份驗證

我對實現的建議是: 1.創建一個login.aspx頁面,其中只包含帶有Form標籤的div元素。 2.在網站的每個頁面上(甚至可能在一個母版頁中),創建一個包含login.aspx頁面的IFrame。 3.如果用戶執行登錄 - 在login.aspx頁面顯示「Hi username」。否則,顯示登錄憑據文本框。

此建議使用特定的login.aspx頁面,但它由IFrame和Master頁面僞裝。我認爲這個建議很有創意,我想不出爲什麼它不起作用的原因。在我嘗試之前,這是要走的路嗎?有人可以提出另一種解決方案

在此先感謝。

+0

找到了答案 - http://stackoverflow.com/questions/96164/partial-site-ssl-using-asp-net-login-control ...它類似於我的建議... – lionheart

回答

0

這是一個不存在的問題的複雜解決方案。

所有你需要做的就是使用登錄服務器控件,並編輯模板以適應任何你想要的。將其放置在主頁面中,並將其掛起。爲了增加好處,您可以編寫一些代碼來檢測用戶是否已登錄,並且如果隱藏登錄控件並顯示用戶名稱。

或者,您可以將登錄控件放入用戶控件中,以封裝此功能。

另一種選擇是編寫自己的Login控件來完成此操作(這並不困難)。

+0

感謝您的回覆。我有兩個問題,但: *我寧願只有登錄控制將使用SSL,而不是整個頁面,是否有可能根據您的解決方案? *在web.config的loginURL屬性中,爲了與您的解決方案一致,我該寫些什麼? – lionheart

+0

@lionheart - 如果它所在的頁面不是ssl,那麼將登錄url設爲ssl是不安全的。原因是,如果登錄表單包含的頁面(即使它在iframe中)未加密,那麼您不能信任頁面本身,因爲攻擊者可能會通過中間人攻擊中的某個人侵犯父頁面並提供一個虛假的登錄網址。此外,如果您的ssl僅在iframe或表單操作中,那麼最終用戶無法驗證證書,因此最終用戶只會看到不安全的頁面。 –

+0

@lionheart - 閱讀此以獲取更多信息http://jlorenzen.blogspot.com/2009/11/preventing-insecure-login-pages.html –

相關問題