【问题标题】:Windows Auth shared across multiple .net core applications跨多个 .net 核心应用程序共享的 Windows 身份验证
【发布时间】:2021-02-04 10:16:54
【问题描述】:

我目前有两个 .net core 3.1 应用程序托管在具有不同应用程序池的 IIS 服务器上。两者都使用 Windows 身份验证,并且不允许匿名身份验证。我正在尝试这样做,以便登录应用程序 A 不会提示登录应用程序 B。最初我开始研究使用共享 cookie / 使用身份,但经过一番挖掘后,似乎不建议在使用 Windows 时这样做认证?我的启动 ConfigureServices 看起来是这样的:

            services.AddAuthentication(IISDefaults.AuthenticationScheme);
            services.AddSingleton<IClaimsTransformation, ClaimsTransformer>();
            services.AddAutoMapper(Assembly.GetExecutingAssembly());
            services.AddControllersWithViews();
            services.AddSpaStaticFiles(configuration =>
            {
                configuration.RootPath = "ClientApp/dist";
            });

任何指导将不胜感激。

【问题讨论】:

    标签: c# asp.net-core iis .net-core


    【解决方案1】:

    最初我开始研究使用共享 cookie/使用身份,但经过一番挖掘后,似乎在使用 windows auth 时不建议这样做?

    是的,如果您在 IIS 中使用 windows 身份验证,它将包含两种身份验证方式,Kerberos 或 NTLM,它们都发生在 http.sys 而不是 asp.net 核心应用程序内部。所以,你不能在 asp.net 核心应用程序中做到这一点。

    通常,如果您想避免向用户显示提示,您应该确保客户端在同一个 AD 域中,并确保您已设置正确的 IE 设置,如下所示:

    【讨论】:

    • 所以听起来我的目标在 chrome 或 ff 中真的是不可能的?
    • Chrome 也使用 IE 的设置进行 windows 身份验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-16
    • 2015-08-14
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多