不同域上的 ASP.NET Core CookieAuthenticationOptions.LoginPath

2023-11-26

我在用着CookieAuthenticationOptions在我的 .NET Core 应用程序中配置身份验证,但我的登录页面位于不同的域中。但是,那LoginPath属性只允许内部路径,而不是完整的 URI。所以下面的代码:

var cookieOptions = new CookieAuthenticationOptions()
{
    AuthenticationScheme = "Cookies",
    LoginPath = new PathString("https://externaldomain.com/login"),
    CookieName = string.Format("myCookie"),
};

app.UseCookieAuthentication(cookieOptions);

... 是无效的。这应该相当简单,还是我在这里遗漏了一些东西?我不想在我的应用程序内部处理这个问题并自己进行实际的重定向。那就有点蹩脚了。


接受的答案适用于 .NET Core 1.x。对于想要在 .NET Core 2.x 上实现它的任何人,请在 Startup.cs 上的 ConfigureServices 中使用以下内容:

services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
    .AddCookie(o =>
    {
        o.Cookie.Name = "myCookie";
        o.Events = new CookieAuthenticationEvents()
        {
            OnRedirectToLogin = (context) =>
            {
                context.HttpContext.Response.Redirect("https://externaldomain.com/login");
                return Task.CompletedTask;
            }
        };
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

不同域上的 ASP.NET Core CookieAuthenticationOptions.LoginPath 的相关文章

随机推荐

  • 之间的区别?

    每次我必须为带有 IIS7 的 ASP NET 添加处理程序或模块时 说明总是告诉我将其合并为两个部分 system web and system webserver
  • 尝试创建新的 Google API 项目时出现 FAILED_PRECONDITION

    我在尝试为 Google API 创建新项目时遇到错误https code google com apis console 我希望错误是暂时的 但我已经有几周无法创建新项目了 该错误似乎已发生变化 因为它过去包含服务器 IP 信息和许多其他
  • PHP - 摆脱大写撇号

    我试图摆脱卷曲的撇号 我想是从某种富文本文档粘贴的撇号 但我似乎遇到了障碍 下面的代码对我不起作用 word Today s search array 8222 8220 146 replace array word str replace
  • R 中 data.frame 长度不同的列表列表

    我在 SO 中读到了很多关于将列表列表转换为 df 的答案 但是 我注意到它们的列表长度 在主大列表内 都是相同的 我有一个不同的案例 h1 lt list USA c 10 13 17 11 RUSSIA NULL BRAZIL NULL
  • 如何更改禁用的文本框的字体颜色?

    有谁知道哪个属性设置禁用控件的文本颜色 我必须在禁用状态下显示一些文本TextBox我想将其颜色设置为黑色 NOTE 请参阅下面 Cheetah 的答案 因为它确定了使该解决方案发挥作用的先决条件 设置BackColor of the Te
  • 在 PHP 循环中构建逗号分隔的字符串

    大家好 我需要这样做 我有一个共同的循环 foreach stuffs as stuff echo stuff 假设 stuff 是我拥有的 mysql 表的 id 并且我不想在下一个结果中显示 所以我想构建一个像这样的字符串 1 23 5
  • 有人可以解释互斥体及其使用方法吗?

    我读了一些有关互斥体的文档 但我唯一的想法是它有助于防止线程访问已被另一个资源使用的资源 我从代码片段中获取并执行 效果很好 include
  • Flutter:流已被收听[重复]

    这个问题在这里已经有答案了 我正在使用 BLoC 从 Firestore 加载预设对象 这是我的块模型 class StatisticsBloc extends BlocBase List
  • Android 中的 requestLocationUpdates 间隔

    我尝试获得 onLocationChanged 函数的正确更新速度 这是我的课程 public class LocationService extends Service implements LocationListener 将 minT
  • 用于组合学/背包的动态 T-SQL 方法

    我想我的问题与背包问题的一个变体有关 但我无法真正想出解决方案 假设您在一家五金店 需要购买 21 个螺丝 他们只提供袋装产品 袋子 X 16 个螺丝 每个螺丝 1 56 美元 总计 25 美元 Y 袋 8 个螺丝 每个螺丝 2 25 美元
  • 在 JavaScript 中增加日期

    我需要在 JavaScript 中将日期值增加一天 例如 我有一个日期值 2010 09 11 我需要将第二天的日期存储在 JavaScript 变量中 如何将日期增加一天 三种选择供您选择 1 仅使用 JavaScriptDate对象 无
  • java.lang.InknownClassChangeError:找到接口com.google.android.gms.location.SettingsClient,[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我无法在模拟器或真实设备上运行该应用程序 当我尝试从 VS Code 运行该应用程序时 它显示以下错误消息 我尝试卸载该应用程序并执行flutter clean 无需更改包我也面临这个问题
  • 很难让 browserify-shim 与 grunt-browserify (> 2.0.2) 一起使用作为转换

    在2 0 2版本中grunt browserify browserify shim已从模块本身中删除并转换为用作transform 而不是直接的option on a grunt browserify task The old使用垫片的版本
  • 运行 docker 容器的 docker 内部的气流

    我在 EC2 实例上运行气流 并且正在安排一些启动 Docker 容器的任务 我怎么做 我需要在气流容器上安装 docker 吗 以及下一步是什么 我有一个用于启动容器的 yaml 文件 它源自 puckel airflow Docker
  • iOS 12 中新 iOS 13 系统颜色的回退行为

    我目前正在采用深色模式 我认为使用新的系统颜色 例如systemBackground and label也在界面生成器中正常工作在 iOS 12 中运行该应用程序时 我本以为会出现编译器错误 但该应用程序看起来就像在 iOS 13 轻量模式
  • 从同一向量中推回一个元素是否安全?

    vector
  • 解析类似电子邮件的标头(类似于 RFC822)

    问题 问题 有一个机器人信息数据库我想解析一下 据说是类似于 RFC822 消息 在我重新发明轮子并编写自己的解析器之前 我想我应该看看是否还有其他可用的东西 我偶然发现imap rfc822 parse headers 这似乎正是我想要的
  • 在 Varnish 4 中重试期间更改后端

    我希望能够在 Varnish 4 中重试时更改后端 我们已经使用 Varnish 3 在不同的 较旧的 应用程序上进行了此操作 但我无法弄清楚 v4 的情况 也无法弄清楚找到很多文档 我们想要的设置是有 2 组控制器 一组用于初始请求 尝试
  • 类型错误:对象不支持此属性或方法

    我创建了 Rails 应用程序 在其中创建了数据库 空 当我尝试查看我的产品页面时 我收到以下错误http localhost 3000 产品页 在迁移数据库之前 应用程序可以正常运行 我正在使用 therubyracer 并且使用的是 W
  • 不同域上的 ASP.NET Core CookieAuthenticationOptions.LoginPath

    我在用着CookieAuthenticationOptions在我的 NET Core 应用程序中配置身份验证 但我的登录页面位于不同的域中 但是 那LoginPath属性只允许内部路径 而不是完整的 URI 所以下面的代码 var coo