2017-03-07 43 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

相关问题