2014-06-12 110 views
2

當我使用OWIN身份驗證開箱即用時,AccountController上的Request.LogonUserIdentity始終是部署該站點的IIS用戶,而不是用戶實際上提出了要求。這是在服務器上啓用了匿名和Windows驗證。如果我關閉匿名訪問Request.LogonUserIdentity是我期望的。在同一個MVC應用程序中同時使用OWIN Cookie身份驗證和Windows身份驗證

基於數據庫設置,我想要做的是針對同一臺服務器上的第三方系統執行Windows登錄,這意味着我需要冒充發出HTTP請求的用戶,但我也需要允許匿名登錄的選項。但是,因爲該用戶始終是IIS用戶,這是行不通的。有什麼方法可以在驗證過程中訪問發出請求的實際用戶?或者我是否需要實現某種類型的處理程序來預處理原始請求?

我不知道從哪裏開始。任何幫助推動正確的方向將是非常有幫助的。

回答

1

我能夠湊齊一個相當不錯的實施使用該項目中找到的技術https://github.com/MohammadYounes/MVC5-MixedAuth

+0

有沒有辦法做到這一點,而不使用會話?我試圖在WebAPI上實現這一點。 – Yashvit

+0

@Yash是的!檢查出新的OWIN混合驗證https://github.com/MohammadYounes/OWIN-MixedAuth –

+0

太好了。看起來你有更新。只是可以肯定的,如果我不使用ASP.NET身份(Identity DbContext等),這會工作嗎?用戶數據持久性由自己的BL處理,我使用Owin IAuthenticationManager來設置cookie。 – Yashvit

相關問題