2012-10-09 121 views
6

我正在使用窗體身份驗證並從Visual Studio 2010啓動網站。它使用Visual Studio開發(Web)服務器而不是IIS。 web.config有:爲什麼網絡用戶通過NTLM進行身份驗證?

<authenticaion mode="Forms"> 
    <forms name=".MyApp" protection="All" cookieless="UseCookies"/> 
</authentication> 

登錄頁面正在使用ASP.NET登錄控件。用戶即使在登錄之前,我可以看到以下內容:

HttpContext.Current.Request.LogonUserIdentity.AuthenticationType == "NTLM" 
HttpContext.Current.User.Identity == System.Security.Principal.GenericIdentity 
HttpContext.Current.User.Identity.AuthenticationType == "NTLM" 

該用戶似乎被驗證爲本地系統的用戶,而不是一個網絡用戶。這是否意味着用戶將永遠被認證,無論他們是否登錄了網站?

網絡用戶NTLM是怎麼樣的?

+0

你在IIS中的身份驗證設置是什麼樣子的? – Erix

+0

'Request.LogonUserIdentity'表示IIS如何運行。 –

+0

@Erix:如上所述,我沒有使用IIS。 – 4thSpace

回答

2

據我所知cassini不支持Windows身份驗證。

它作爲本地系統帳戶運行,這就是您看到的NTLM身份驗證。

如果您正在開發/調試Asp.Net應用程序(或WCF)的安全功能,我強烈建議您部署到IIS。

+0

你們(和@EdSF)都發布了類似的好答案。不確定誰接受。 – 4thSpace

1

如果我沒有弄錯,當你使用VS及其dev服務器進行調試時,你會發現yourselfUser(正在驗證)運行Visual Studio(在你的用戶上下文中)。

的Visual Studio在您的環境中運行(Windows用戶帳戶/權限等) - Request.LogonUserIdentity.User

應該不會影響您的Web窗體的調試/表單驗證。成功完成Forms Auth Login後,您可以獲得「forms auth user」(web用戶)的HttpContext.User.Identity.Name

相關問題