我試圖讓一個MVC5 web應用程序部分使用Windows身份驗證。歐文和Windows身份驗證(mvc5) - 使用Windows身份驗證作爲登錄的一部分
我的意思是,它實際上是基於表單/ cookie的身份驗證,但是請求用戶的Windows主體形成了其登錄憑證的部分。
例如,登錄頁面會顯示「您已被識別爲somedomain \ kierenj。請輸入密碼登錄。」如果他們輸入了正確的代碼,則會設置Cookie並且他們已登錄。
如果Windows身份驗證失敗,那麼登錄頁面仍然會顯示,但被禁用。
我已經嘗試了這樣的WindowsPrincipalHanlder:https://github.com/JabbR/JabbR/blob/master/JabbR/Middleware/WindowsPrincipalHandler.cs
它的要點是,如果我啓用Windows身份驗證和禁用匿名身份驗證,然後Owin(或想必它的cookie認證部分)重定向到登錄頁面 - 重定向到登錄頁面 - 這是一個重定向循環。
注意我正在使用一個非常簡化的Owin設置。 UseCookieAuthentication
與ApplicationCookie
類型和LoginPath
指定;然後我打電話SignIn
像這樣從我的帳戶控制:
var claims = new[] {
new Claim(ClaimTypes.Name, "Username"),
new Claim(ClaimTypes.Role, "AuthenticatedUser")
};
AuthenticationManager.SignIn(new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie));
(已經先檢查WindowsIdentity.GetCurrent()
例如)
我真的需要寫我自己的Owin cookie認證中間件的版本?我可以獲取源代碼以便調試/派生嗎?
是你永遠能夠找出一個答案,這個問題在控制器的構造函數? – Phil
這是否 - https://github.com/MohammadYounes/MVC5-MixedAuth/tree/Update3 - 幫助? – Bringer128