在 ASPNET 和 OTP 身份验证中传递凭据

问题描述 投票:0回答:1

有 2 个视图

  1. 索引
  2. 验证AuthOTP

两者都有相同的控制器,IndexController实现了Controller,即

IndexController : Controller

预期流程:登陆索引视图,然后输入用户名和密码(以及验证码),点击提交将执行另一个操作索引,参数作为登录模型。

从这里开始,如果用户凭证有效,则调用VerifyAuthOTP。

在VerifyAuthOTP中,如果在Index中初始化,Session和TempData都不会保留。

因此,我尝试使用 Base 64 编码在查询参数中发送它,但由于安全问题,这已被拒绝。

还有其他方法吗?

c# razor asp.net-core-mvc
1个回答
0
投票

我用下面的代码进行了测试,它对我有用。

public class IndexController : Controller
{
    public IActionResult Index()
    {
        TempData["data"] = "this is the temp data";
        TempData.Keep("data");
        HttpContext.Session.SetString("SessionData", "session value");
        return View(new LoginModel());
    }

    public IActionResult login(LoginModel mod) {
        if (true) {
            VerifyAuthOTP();
        }
        return Ok("success");
    }

    public void VerifyAuthOTP() {
        var data = TempData["data"];
        var sessionData = HttpContext.Session.GetString("SessionData");
    }
}

public class LoginModel {
    public string UserName { get; set; }
    public string Password { get; set; }
}

我使用了一个简单的视图

@model WebApplication1.Controllers.LoginModel

<div>@TempData["data"]</div>


<form asp-action="login">
    <div>
        <lable [email protected]>user name</lable>
        <input [email protected] />
    </div>
    <div>
        <lable [email protected]>password</lable>
        <input [email protected] />
    </div>
    <button type="submit">submit</button>
</form>

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.