2011-04-27 108 views
1

好吧,我正在研究一個asp.net web應用程序,用於內部跟蹤我們的工作人員在校園外面以及他們在做什麼。活動目錄+ HTTP身份驗證

我們目前使用的系統使用「NoSQL」表(它不是100%熟悉的),但它是使用cgi腳本的舊系統。所以我在asp.net中重寫它以更新系統,使其更具現代感,採用現代設計,併爲其添加了Active Directory身份驗證,因爲它使用自己的用戶數據庫,與我們在其他地方使用的獨立於AD的用戶數據庫分開。

我發現了一篇文章enable Active Directory Authentication通過web.config,但是,我寧願不使用表單身份驗證,我想將它綁定到HTTP提示進行身份驗證。我嘗試了一些Google搜索來嘗試尋找解決方案,但我似乎無法找到那些之前完成此操作的人。

在此先感謝。

回答

1

首先,如果你打算用自己的域憑據進行身份驗證的人,你應該確保使用HTTPS否則他們的密碼將使用容易獲得的網絡嗅探器。

好吧,所以你在說什麼是Windows身份驗證模式在ASP.NET與IIS基本身份驗證。您需要在您的web.config中配置以下內容:

<configuration> 
    <connectionStrings> 
    <add name="ADConnectionString" connectionString="LDAP://your.ad.fqdn.com/DC=com,DC=fqdn,DC=ad,DC=your"/> 
    </connectionStrings> 
    <system.web> 
    <membership defaultProvider="ADMembershipProvider"> 
     <providers> 
     <add name="ADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ADConnectionString" connectionUsername="MYNTDOMAIN\someuser" connectionPassword="asdf1234"/> 
     </providers> 
    </membership> 
    <authentication mode="Windows"/> 
    </system.web> 
</configuration> 

接下來,您將要爲基本身份驗證配置IIS。假設您正在運行IIS 7.x,請在IIS管理器中找到您的應用程序的根文件夾,然後單擊身份驗證。您應該能夠在此處啓用基本身份驗證。您還可以啓用Windows身份驗證以允許IE/Chrome用戶自動登錄:

Basic Authentication in IIS 7

1

Windows身份驗證通常是透明的(他們會自動使用登錄到Windows的憑據進行身份驗證)。如果您希望他們被迫輸入憑據,則您的頁面需要返回401 HTTP狀態代碼。

1

這聽起來像你想在你的ASP.NET應用程序中啓用Windows身份驗證,而不是表單身份驗證。它基本上涉及將web.config中的身份驗證類型從「Forms」更改爲「Windows」,然後在IIS中設置用戶/組權限。以下鏈接詳細介紹了這些變化。

更多信息:

MSDN Article on Windows Authentication in ASP.NET