2010-03-23 101 views
0

我正在開發一個簡單的ASP.NET網站,它將在WS2008(IIS7)框上的Intranet上運行,並響應運行XP/IE8的用戶。一切都是域連接,我試圖自動登錄用戶很像SharePoint一樣。ASP.NET/Active Directory - 支持域用戶自動登錄

在我的開發機器(XP)上,當通過VS運行網站時,一切正常。我可以完美地吸引用戶。我正在使用以下設置:

<authentication mode="Windows"/> 
<identity impersonate="true"/> 
<anonymousIdentification enabled="false"/> 

<authorization> 
    <allow users="*"/> 
    <deny users="?"/> 
</authorization> 

但是,當我發佈到WS2008框時,它不起作用。很顯然,我錯過了IIS7中的一個設置來支持這一點。

我有以下設置身份驗證的網站上:

Anon Auth - Enabled 
ASP.NET Impersonation - Enabled 
Basic Auth - Disabled 
Forms Auth - Disabled 
Windows Auth - Disabled 

我缺少什麼? 謝謝

回答

6

嘗試禁用從iis匿名登錄。轉到IIS上該網站的安全選項,並取消選中啓用匿名登錄。確保選中了Windows身份驗證。

編輯::如果在嘗試使用IE登錄時出現登錄框,您可以設置一個設置,以便IE在Intranet站點中使用時發送用戶名。轉至工具> Internet選項>安全性並在安全設置中選擇選項使用當前用戶名和密碼自動登錄僅在Intranet中自動登錄區域您必須確保您嘗試使用的網站已添加內聯網區域。

沒有與Firefox和Chrome類似的設置,我相信,但我不知道如何設置它

+1

在Firefox中,你可以這樣做:http://sivel.net/2007/05/firefox-ntlm-sso/(你可以輸入域名甚至是根域名:.my-domain.com ) – 2010-03-23 14:39:38

+0

這一定是它。如果我瀏覽IP或自定義URL,IE必須認爲它不在Intranet內。當我通過機器名稱時,可能會發現機器存在於域中。 – Krisc 2010-03-23 14:42:11

+0

我的理解是,如果您啓用了匿名和Windows身份驗證功能,則每次匿名都會贏(優先)(可能是因爲它涉及服務器上的最少處理)。我認爲匿名和任何其他認證方法的組合都是如此,但我沒有使用任何其他認證方法,所以我不能確認。 – PhilPursglove 2010-03-23 17:00:49

0

您需要啓用「Windows身份驗證」,在IIS和禁用「匿名身份驗證」

這裏是的設置,你應該使用:

匿名驗證 - 禁用

ASP.NET模擬 - 啓用

乙ASIC驗證 - 禁用

窗體身份驗證 - 禁用

Windows驗證 - 啓用

+0

啓用Windows身份驗證會導致登錄框彈出。是否有其他設置使其使用當前登錄的用戶? – Krisc 2010-03-23 14:13:30

+0

好吧 - 它似乎工作,如果我通過它的機器名稱命中服務器。如果我通過我在本地主機文件中設置的主機掩碼,它不起作用。 也許這更多的是建立AD的問題? 爲了讓這更混亂 - Chrome w/URL工程; Chrome w /機器名稱不起作用; IE w/URL不起作用; IE w /機器名稱工程。 – Krisc 2010-03-23 14:16:54

0

另外還要考慮瀏覽器的Intranet區域設置,以及安全設置。嘗試在IE中添加URL的其他風味/變體到Intranet站點區域。我的理解是這是IE如何確定它是否應該自動提交憑據而不是提示。