使用 ASP 的 ADSI 驗證問題
視內部網路設定而定,從 ASP 頁面執行 ADSI 程式代碼時,可能會發生驗證問題。
您可以使用委派來授與存取域控制器的驗證。 委派可讓服務以使用者身分運作,因此可以使用該使用者認證來存取網路資源。 如果您的內部網路遵循此設定,您必須設定 IIS 以使用委派。 將 IIS 驗證機制設定為匿名或 NTLM。 如果您選擇匿名,您的安全性內容將會對應至IUSR_MACHINE帳戶。 如果您選取 NTLM,安全性內容將會根據登入您的網站的用戶而變更。
如果您使用使用 NT 挑戰/回應的 IIS 伺服器,或不支援 Kerberos 的瀏覽器用戶端,則不支援雙躍點驗證。 雙躍點驗證表示使用者認證會從瀏覽器用戶端傳遞至 IIS 伺服器,然後 IIS 伺服器會將認證傳遞至後端伺服器。 在這裡情況下,您可以使用下列其中一個解決方案,允許從 ASP 頁面存取目錄:
- 使用 IADsOpenDSObject::OpenDSObject 或 ADsOpenObject,將認證傳遞至 Active Directory。 網頁會針對 IIS 伺服器驗證已連線的使用者。 用戶通過驗證后,網頁可以使用 OpenDSObject 或 ADsOpenObject 將使用者名稱和密碼傳遞至目錄服務,以取得後端伺服器的驗證。 接著,網頁就可以從目錄存取數據。
- 將程式代碼新增至 COM 物件,並將此物件放入 COM+ 應用程式(先前稱為 MTS 套件)。 然後,COM+ 應用程式可以執行為 網域使用者帳戶,。
- 使用多個 ASP 頁面,其中一頁會驗證用戶端,而另一個頁面會使用網域用戶帳戶上的匿名驗證,將認證傳遞至目錄。
這些方法牽涉到驗證 Web 用戶端,然後在連絡目錄時變更認證,因為無法使用相同的認證進行雙躍點驗證。