我有一個現有的mvc webapi系統,不使用身份驗證或授權,我試圖添加Windows身份驗證。我通過創建一個簡單的系統,靜態數據。aspnet mvc系統沒有用戶當提出AuthenticateRequest事件
新的系統設置爲使用Windows身份驗證,而在當我勾入Application_AuthenticateRequest
的HttpContext.Current.User
結果不爲空,並具有填充Identity
屬性與正確WindowsPrincipal
用戶發送請求。
在現有系統中,當我修改web.config
以匹配新的(工作)系統時,所有傳入請求的空值HttpContext.Current.User
在Application_AuthenticateRequest
中。
我看到一個帖子,提示我使用了Application_AuthorizeRequest
事件處理程序,因爲它稍後在管道中被觸發。正如預期的那樣HttpContext.Current.User
在這一點上不爲空,但是Identity
屬性被設置爲具有Anonymous
的模擬級別,並且重要的是沒有進行身份驗證。
我假設我試圖添加身份驗證的生產系統以某種方式配置爲不使用模擬,但我的概念系統的新證明是。因此,管道的Authenticate階段正在向HttpContext添加一個匿名用戶,這正是我在管道授權階段看到的。
我的問題是如何配置我的生產系統使用模擬,這樣我可以訪問已發送請求的用戶?
請注意系統部署到企業內部網,所以用戶的Windows身份是我所需要的,並且提供了足夠的安全性。
我的web配置包含以下內容:
<system.web>
<compilation debug="true" targetFramework="4.6.1" />
<httpRuntime targetFramework="4.6.1" />
<authentication mode="Windows" />
<identity impersonate="true" />
<httpModules>
</httpModules>
</system.web>
在兩個系統(生產和POC)
,我試圖去除這兩個<identity/>
元素,它似乎沒有任何效果。
在這個階段,我只託管在IISExpress通過VS2015