2017-03-07 46 views

回答

0

我不是說這是「最佳做法」,但我可以告訴你,似乎對我的好,以實現這一目標的途徑。

對於Windows身份驗證,它主要是建立正確的環境的問題。舉例來說,如果你使用IIS /紅隼,你必須配置IIS以轉發窗口標識,WebListener同樣的事情......我已經解釋了一下這裏:NTLM authentication on specific route in ASP.NET Core所以,一旦正確設置,由[Authorize]保護的控制器操作屬性應爲HttpContext.User.Identity a WindowsIdentity

對於標準的ASP.Net核心標識機制,您可以使用CookieAuthenticationMiddleware,它將使用與請求一起發送的cookie來獲取標識。相當標準。

融合兩家取決於一些環境中,距離appsettings.json來用很簡單,你需要從AuthenticationMiddleware一類求導,從AuthenticationHandler一個求導和AuthenticationOptions通常是一個求導我要創造我自己的中間件,並根據我的設置方法protected override async Task<AuthenticateResult> AuthenticationHandler::HandleAuthenticateAsync()我會驗證來自Windows的身份,或者將自己分爲CookieAuthenticationMiddleware的代碼。好消息是ASP.Net Core是開源的,所以你可以在github上實際獲得Microsoft.AspNetCore.Authentication.Cookies的所有源代碼。

+0

有沒有辦法檢查應用程序是否以IIS啓動,否則使用Asp Net Core Identity? – Palmi

+0

我已經在這裏的東西https://github.com/aspnet/Security/issues/967但我不知道一種方法來做到這一點。 – Daboul

相關問題