asp.net-core - 成功登录后如何重定向客户端应用程序(而不是使用最初请求的 url)?
问题描述
我有一个带有 OpenID Connect 身份验证的 asp.net 核心应用程序,一切正常。问题是,我想在成功登录后重定向客户端,而不是使用嵌入在state
查询字符串中的属性中的回调 url。我该怎么做Client/Startup.cs
?
在下面的代码示例中,假设用户已添加书签或输入/home/Second
,并且在成功登录后,我希望始终重定向到/home/Index
。我该怎么做呢?
[Authorize]
public class HomeController : Controller
{
public async Task<IActionResult> Index()
{
return View();
}
public async Task<IActionResult> Second()
{
return View();
}
}
解决方案
你需要类似的东西:
services.AddAuthentication().AddOpenIdConnect(options =>
{
options.Events = new OpenIdConnectEvents
{
OnTicketReceived = ctx =>
{
// can be First, Second, Index, whatever
ctx.ReturnUri = "http://google.com";
return Task.CompletedTask;
}
}
}
推荐阅读
- python - Django - 计算 created_at 和 done_at 之间的平均时间
- serialization - Ember 根据查询模型更改 normalizeResponse
- excel - 未来值 (FV) 如何从整个期间返回总和,而不仅仅是 Nper 值
- javascript - Chrome 内容和后台脚本可以共享对 blob: URL 的访问吗?
- javascript - js中的禁用按钮
- sql - SQL 在调查中存储“检查所有适用”的最佳方式
- c# - 如何使用 C# 中的 select 调用 MySQL 存储过程
- javascript - 匹配文件路径的字符串 url 中的特定单词
- .net - 发现同一依赖程序集的不同版本之间存在冲突 - app.config 与 packages.config 不同
- security - 这种反机器人防御是如何工作的?