使用ASPNet Core在Linux上托管时的Windows身份验证

时间:2016-03-15 17:32:39

标签: asp.net .net asp.net-core dnx .net-core

我目前有一个自托管的Owin应用程序,它在Windows上运行,如下所示:

public class Program
{
    private static void Main(string[] args)
    {
        using (WebApp.Start<Startup>("http://localhost:9000"))
        {
            Console.WriteLine("Press Enter to quit.");
            Console.ReadKey();
        }
    }
}

public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var listener = (HttpListener) app.Properties["System.Net.HttpListener"];
        listener.AuthenticationSchemes = AuthenticationSchemes.IntegratedWindowsAuthentication;

        app.UseNancy();
    }

当请求进入时,将使用其Windows域凭据验证用户。

对于ASPNetCore,我想知道是否有类似的设置可以使用但是应用程序在Linux上使用Kestrel Web服务器运行。

我听说过各种选项,比如Windows 2016和OpenIdConnect中间件可能有效,或者我可以使用在Windows上运行的IdentityServer,但Linux上的应用程序,但我认为需要中间件,我也不清楚是否存在将是一个&#34;认证舞蹈&#34;暗示它可能不像我现在那样无缝。

非常感谢任何建议和/或代码示例。

由于

1 个答案:

答案 0 :(得分:5)

在任何平台上都没有直接支持Kestrel中的Windows auth,也没有任何可用的中间件支持Linux上的Windows身份验证。

通过Windows服务器路由登录请求是您唯一的选择。 IdentityServer将是一个很好的起点。 OpenIdConnect可能是您以最少的用户交互在两台服务器之间传递身份的最佳选择。