2011-09-23 76 views
2

我想創建一個內部網站,最好在asp.net中使用ajax調用來執行所有操作。使用ajax的Windows身份驗證

要求是站點應該使用Windows域身份驗證(充當單點登錄解決方案)來驗證哪個用戶發送請求。以安全的方式完成此操作的最佳方式是什麼?我願意使用https或cookie或任何其他可行的解決方案。

(我會使用jQuery喜歡定期AJAX,因爲我還沒有使用asp.net阿賈克斯,但如果是比較容易解決的一些問題,然後讓我知道)

我這樣做(不通過Ajax)目前的方式在iis中禁用匿名訪問,然後從asp.net獲取登錄用戶名,但這需要網站執行我想避免的回傳等。

回答

-2

你絕對應該:

  1. 使用HTTPS連接到服務器端發送用戶名和密碼

  2. 身份驗證,用asp.net

  3. 充分利用asp.net會議儘可能地擴大範圍。

如果你不熟悉與ASP.Net ...嗯,認爲這是一個很好的學習機會:)

jQuery是偉大的,但它只是一個工具。在這種情況下,這可能不是這個特定工作的最佳工具。

恕我直言......

+0

我知道我需要在服務器端使用https和身份驗證,但我如何傳遞憑據在第一個地方,並知道什麼用戶名到達服務器真的是打開瀏覽器的人的用戶名,而不是欺騙?以及如何儘可能利用asp.net會話?我知道從高層次看什麼需要做,但不是具體的 – randomThought

1

Ajax請求與任何其他HTTP請求在認證方面沒有區別。

當用戶訪問您網站的索引時,很可能會對您的用戶進行身份驗證。任何後續的請求,Ajax或不會,都會被認證。沒有什麼特別的,你的jQuery代碼看起來就像它通常看起來一樣。

-1

對每個請求都檢查Windows身份驗證。 這是怎麼檢查取決於它的身份驗證方法/供應商已啓用並支持服務器(Kerberos的,NTLM,自定義等)

憑證自動根據一定的規則發送過來(我相信內部網可信的IE瀏覽器,我不記得上除此之外還有什麼)。 如果我每次回憶,Firefox都會提示你。

退房: http://www.winserverkb.com/Uwe/Forum.aspx/iis-security/5707/IIS-6-0-Windows-Authentication-401-Every-Request

重要的是要注意的是瀏覽器和服務器在必要時將採取的這種關心,並提示用戶。

另外需要注意的是我非常強烈建議所有的流量都在這一點上的SSL連接,以防止嗅探和證書竊取/令牌stealking下(如爲基本身份驗證非常容易)

您可以啓用此保護在IIS內部並使用所有文件權限,或者您可以在Web應用程序Web中控制這些權限。配置通過啓用Windows身份驗證。如何做到這一點取決於您的服務器配置(Kerberos支持等)

相關問題