有 2 个视图
两者都有相同的控制器,IndexController实现了Controller,即
IndexController : Controller
预期流程:登陆索引视图,然后输入用户名和密码(以及验证码),点击提交将执行另一个操作索引,参数作为登录模型。
从这里开始,如果用户凭证有效,则调用VerifyAuthOTP。
在VerifyAuthOTP中,如果在Index中初始化,Session和TempData都不会保留。
因此,我尝试使用 Base 64 编码在查询参数中发送它,但由于安全问题,这已被拒绝。
还有其他方法吗?
我用下面的代码进行了测试,它对我有用。
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>