C# 在回调操作期间使用TempData时,其行为不符合预期
我有一个ASP.NET Core 2 web应用程序。它实际上是Identity Server 4的一个实现,但我认为这与我的问题无关。我有一个控制器,其操作表示来自外部OAuth服务的回调。我剥离了所有处理程序逻辑,只留下以下内容:C# 在回调操作期间使用TempData时,其行为不符合预期,c#,asp.net-mvc,asp.net-core,C#,Asp.net Mvc,Asp.net Core,我有一个ASP.NET Core 2 web应用程序。它实际上是Identity Server 4的一个实现,但我认为这与我的问题无关。我有一个控制器,其操作表示来自外部OAuth服务的回调。我剥离了所有处理程序逻辑,只留下以下内容: [HttpGet] [AllowAnonymous] [Route("challenge/callback")] public async Task<IActionResult> ExternalLoginCallback(string returnU
[HttpGet]
[AllowAnonymous]
[Route("challenge/callback")]
public async Task<IActionResult> ExternalLoginCallback(string returnUrl = null, string remoteError = null)
{
TempData["Test"] = "hello world";
return RedirectToAction("Index", "App", new { path = "oauth-register" });
}
[HttpGet]
[异名]
[路线(“质询/回调”)]
公共异步任务ExternalLoginCallback(string returnUrl=null,string remoteError=null)
{
TempData[“Test”]=“hello world”;
返回RedirectToAction(“Index”,“App”,new{path=“oauth register”});
}
你可以看到我正在设置一些诱惑数据和重定向。它重定向到的视图只是迭代TempData
集合并呈现每个键/值
应用程序使用的是TempData
的默认实现,因此没有注册额外的提供程序或其他任何内容
我现在执行以下两个操作:
TempData
集合是空的,目标视图没有写出任何内容TempData
是否根据referer或其他请求特定变量表现不同
我希望有人能帮我摆脱这里的痛苦 我想这个链接可能会有帮助。我认为问题在于你在登录过程中多次重定向。我不确定。就像我说的,我可以在设置
TempData
和重定向的操作方法中看到我的调试器,然后在重定向目标中TempData
已经为空。它们之间没有额外的重定向。我到达第一个动作本身就是一个重定向,这有关系吗?