2011-04-21 174 views
2

我使用窗體身份驗證在我目前的ASP.NET Web應用程序(不MVC)和我的IIS 6服務器的正確IIS 6的配置配置了以下選項:窗體身份驗證

在[目錄安全性選項卡

] - > [身份驗證方法]我有:

  • 的啓用匿名訪問
  • 集成Windows身份驗證啓用

做好以上選項防止表單身份驗證正常工作?換句話說,表單身份驗證的正確IIS 6配置是什麼?

編輯

我只是做了測試與上面的兩個選項啓用,窗體身份驗證會話過期,重定向我到登錄頁面,但所有的答案到目前爲止提醒,[集成Windows身份驗證]應關!

+0

需要多長時間才能過期?您在登錄後是否嘗試過檢查cookie,您可以使用Firebug(在Firefox中)或IE開發人員工具欄(按F12)。您是否配置了標籤以允許(以及拒絕)在包含您的頁面的文件夾中進行訪問? – 2011-04-21 10:13:19

+0

30分鐘,因爲我想,並且是標記可能已配置,並且上面的兩個選項都啓用了! – 2011-04-21 13:38:04

回答

7

以下是使用ASP的檢查表。在IIS6 NET表單驗證

配置IIS:

在IIS中,站點屬性 - >目錄安全性 - >身份驗證和訪問控制

  • 啓用匿名訪問
  • 禁用所有授權的訪問方法

enter image description here

配置Forms身份驗證:

配置表單身份驗證在你的網站的web.config

<authentication mode="Forms"> 
    <forms name="MySite" 
     path="/" 
     loginUrl="~/logon.aspx" 
     protection="All" 
     timeout="30" 
     slidingExpiration="true" /> 
</authentication> 

nameloginUrl可能會有所不同。 slidigExpiration屬性用於延長表單身份驗證Cookie的使用期限,而不是在timeout過期後將用戶從網站踢出。 timeout的值以分鐘爲單位。

配置會話超時:

您需要將您的會話狀態timeout配置比你的窗體身份驗證票到期更長的時間。如果你不這樣做,那麼一個空閒會話可以超時會話,但讓用戶登錄。預期會話值存在的代碼將拋出異常,因爲即使它們仍然通過身份驗證,它們也會消失。 timeout的價值也在幾分鐘內。

<sessionState mode="InProc" timeout="40" /> 
+0

1 000 000謝謝! – 2013-09-05 23:19:41

2

由於表單身份驗證不依賴於IIS身份驗證,因此如果您打算在ASP.NET應用程序中使用表單身份驗證,則應在IIS中爲應用程序配置匿名訪問。

請參閱http://msdn.microsoft.com/en-us/library/ff647070.aspx瞭解更多信息。

+0

謝謝,所以換句話說,使用表單認證時應該關閉[綜合Windows認證]!對吧 – 2011-04-21 08:12:32

+0

是的。還要確保James提到的authenticity標籤是正確的。另一件你需要確保你有。這會拒絕任何用戶,從而自動重定向認證標籤中提到的登錄頁面。 – 2011-04-21 08:54:36

2

應該啓用匿名訪問,我不認爲認爲集成的Windows身份驗證有所作爲,但如果你不需要它,那麼最好關閉它。要記住的重要一點是要確保它的開啓在web.config中:

<authentication mode="Forms" /> 

這是一個基本的教程,可能是有用的:

Overview of Forms Authentication

2

匿名訪問 - >檢查 所有其他安全選項卡上的選項 - >未選中

請注意,表單身份驗證是由.NET完成的,而不是由IIS完成的。另外,Windows身份驗證也必須關閉。

寧可technical explanaitions由MS。