如何用ASP.NET Core实现跨站登录重定向的全新长尾词技巧?
- 内容介绍
- 文章标签
- 相关推荐
本文共计656个文字,预计阅读时间需要3分钟。
前言:作为.NET程序员,痛苦之一是自ASP.NET诞生之日起,直至最新的ASP.NET Core,都无法直接实现跨站登录重定向(例如访问https://q.cnblogs.com,跳转到https://passport.cnblogs.com进行登录)。
前言
作为 .NET 程序员,痛苦之一是自从 ASP.NET 诞生之日起直到最新的 ASP.NET Core 都无法直接实现跨站登录重定向(比如访问 q.cnblogs.com ,跳转到 passport.cnblogs.com 进行登录),只能跳转到当前站点。
具体拿 ASP.NET Core 来说就是 CookieAuthenticationOptions.LoginPath 只能指定路径,不能指定包含主机名的完整 url ,ASP.NET Core 会在重定向时自动加上当前请求的主机名。
services.AddAuthentication() .AddCookie(options => { options.LoginPath = "/account/signin"; });
ReturnUrl 查询参数也只会包含路径,不包含完整的 url 。
为了解痛,在 ASP.NET 时代我们服用的解药要么是不用 ASP.NET 的登录跳转机制,要么通过专门的 UserController.Login Action 进行二次跳转,在 ASP.NET Core 时代我们改服了 Middleware 的解药,在专门的 Middleware 中进行跳转(也比较麻烦)。
本文共计656个文字,预计阅读时间需要3分钟。
前言:作为.NET程序员,痛苦之一是自ASP.NET诞生之日起,直至最新的ASP.NET Core,都无法直接实现跨站登录重定向(例如访问https://q.cnblogs.com,跳转到https://passport.cnblogs.com进行登录)。
前言
作为 .NET 程序员,痛苦之一是自从 ASP.NET 诞生之日起直到最新的 ASP.NET Core 都无法直接实现跨站登录重定向(比如访问 q.cnblogs.com ,跳转到 passport.cnblogs.com 进行登录),只能跳转到当前站点。
具体拿 ASP.NET Core 来说就是 CookieAuthenticationOptions.LoginPath 只能指定路径,不能指定包含主机名的完整 url ,ASP.NET Core 会在重定向时自动加上当前请求的主机名。
services.AddAuthentication() .AddCookie(options => { options.LoginPath = "/account/signin"; });
ReturnUrl 查询参数也只会包含路径,不包含完整的 url 。
为了解痛,在 ASP.NET 时代我们服用的解药要么是不用 ASP.NET 的登录跳转机制,要么通过专门的 UserController.Login Action 进行二次跳转,在 ASP.NET Core 时代我们改服了 Middleware 的解药,在专门的 Middleware 中进行跳转(也比较麻烦)。

