首页 > 解决方案 > ASP.NET Core 3.1 如何重定向到 MicrosoftIdentity 提供的 AccountController 中包含的登录操作

问题描述

我有两种登录方法,OpenIDConnect 和基于 Cookie 的身份验证。

我提供了一个按钮供用户选择,然后我有这段代码来处理请求。

    using Microsoft.AspNetCore.Hosting;
    using Microsoft.Identity.Web.UI; 

    [HttpPost]
    [ValidateAntiForgeryToken]
    [AllowAnonymous]
    public async Task<IActionResult> LogIn(LogInModel model, string actionType)
    {
        if (actionType.Equals("AzureLogin")) {
            
            return RedirectToAction("SignIn", "AccountController", new { Area = "MicrosoftIdentity" });
        }
       // default Cookie Auth follows.
    }

当我重定向时,我得到:

Status Code: 404; Not Found.

如何调用提供的登录操作。.NET Docs 提到了这一点,但我不想使用该asp-controller属性。

<li class="nav-item">
    <a class="nav-link text-dark" asp-area="MicrosoftIdentity" asp-controller="Account" asp-action="SignIn">Sign in</a>
</li>

标签: asp.net-coreopenid-connect

解决方案


控制器的名称应该是Account而不是AccountController

例如

return RedirectToAction("SignIn", "Account", new { Area = "MicrosoftIdentity" });

推荐阅读