2010-02-05 31 views

回答

5

NTLM是網絡瀏覽器將直接與網絡服務器(例如IIS)進行通信以在不涉及您的應用程序的情況下對用戶進行身份驗證的協議。這就是你想要避免的,因爲你想呈現一個「很好」的登錄表單。

因此,您需要做的是:在表單中提示輸入用戶名和密碼,然後自己對Active Directory進行驗證。下面是描述如何做到這一點在ASP.NET中的Microsoft文章:http://support.microsoft.com/kb/326340/en-us

但是請記住幾點:

  • 不要忘了,不像在NTLM的情況下,用戶的密碼將被髮送除非您使用SSL發佈網站,否則請以明文形式發佈。您絕不應該允許用戶在未加密的網站上輸入他們的AD密碼。
  • 如果您的某些用戶以前自動進行了身份驗證(透明登錄,根本沒有提示輸入密碼),這應該是Intranet方案中的默認行爲,但這些用戶不會喜歡您的登錄表單,不管它有多棒看起來......
  • IIS6中的默認行爲是隻有ASP.NET生成的頁面纔會受到保護;因爲您必須將IIS配置爲允許對應用程序進行匿名請求,所以任何用戶都可以請求靜態文件。