我有一個在4.0框架上運行的ASP.NET Web窗體應用程序項目。我對Web應用程序非常熟悉,但與Web窗體應用程序沒有多大關係。今天我遇到了他們兩人之間的顯着差異,我對這種差異甚至存在的原因感到困惑。LogonUserIdentity.Name與User.Identity.Name
通常,在Web應用程序中,如果我想確定誰是當前用戶的頁面,那麼我只需從User.Identity.Name中檢索他們的域登錄。所以,當我在我的調試環境中運行我的解決方案(我的Web Forms Application!),並且發現User.Identity.Name爲空時,我感到非常困惑。所以我用google搜索了一下「User.Identity.Name是空的」,並且遇到了大量所有處理有問題的人的鏈接,當他們沒有禁用IIS中的匿名身份驗證時。當然,這不是我的問題(我認爲),因爲我只是在這裏從Visual Studio 2012進行調試。
但是,我繼續挖掘並最終在HttpContext上發現了一些不爲空的屬性,並返回用戶的域登錄。該物業是HttpContext.Current.Request.LogonUserIdentity.Name。這使我對我的問題...
問題:在我的Web窗體應用程序,爲什麼User.Identity.Name空,但HttpContext.Current.Request.LogonUserIdentity.Name是不是?
在此先感謝您的幫助!
編輯:忘了說我在我的web.config中有什麼(因爲我確定它會被要求如果我不這樣做!)。
<system.web>
<customErrors mode="Off" />
<compilation debug="true" targetFramework="4.0" />
<authentication mode="Windows"/>
</system.web>
<system.webServer>
<httpProtocol>
<customHeaders>
<clear />
<add name="X-UA-Compatible" value="IE=10,chrome=1; IE=9,chrome=1; IE=8,chrome=1; IE=edge,chrome=1" />
</customHeaders>
</httpProtocol>
<modules runAllManagedModulesForAllRequests="true" />
<defaultDocument>
<files>
<add value="Home.aspx" />
</files>
</defaultDocument>
</system.webServer>
這幾乎所有我在我的web.config除了EntityFramework的標籤。
+1,但不要讓我掛!我在哪裏可以找到這個'applicationhost.config'文件?這是用於我的本地機器還是Visual Studio Program Files文件夾中的某個地方? – jp2code
你在哪裏設置了enabled =「true」?在哪個關鍵? – Taosique
@Taosique,你是否贊成這個?我發現它對我非常有用 - 主要是這個問題,但是當我問到它時,他回來了,並提供了對我有用的其他細節。 – jp2code