こんにちは私はAsp.net Coreで最初のプロジェクトを作成しており、前のページにログインした後にリダイレクトする必要があります。たとえば、彼がページ "About"を見ると、彼はログインしたいと思うでしょうし、ログイン後、私は彼が "About"ページにリダイレクトする必要があります。 ここにコントローラのコードがあります。ログイン後に前のページを取得する方法
//
// GET: /Account/Login
[HttpGet]
[Route("/Account/Login")]
[AllowAnonymous]
public IActionResult Login(string returnUrl = null)
{
try
{
if (_signInManager.IsSignedIn(User))
_signInManager.SignOutAsync();
ViewData["ReturnUrl"] = returnUrl;
return View("Login");
}
catch (Exception e)
{
return ExceptionActionResult(e);
}
}
私はRequest.Headers ["Referer"]を使用しようとしました。問題は、前のページがログインページであることです。私は中//ログインを取得し、この方法を入れてみましたが、その後、私はあなたが何かを必要とする場合は、//ポストログイン
// POST: /Account/Login
[HttpPost]
[Route("/Account/Login")]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
try
{
//Nesmi byt prihlasen
if (_signInManager.IsSignedIn(User))
return ErrorActionResult("User is already Signed");
// string var = Request.Headers["Referer"];
string var = Request.Headers["Referer"].ToString();
ViewData["ReturnUrl"] = returnUrl;
if (ModelState.IsValid)
{
set lockoutOnFailure: true
var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: true);
if (result.Succeeded)
{
return RedirectToLocal(returnUrl);
}
if (result.IsLockedOut)
{
_logger.LogWarning(2, "someString");
ModelState.AddModelError("UserName", "someString");
return View("Lockout");
}
else
{
_logger.LogWarning(2, "someString");
ModelState.AddModelError(string.Empty, "Invalid Password or Mail");
}
return View(model);
}
// If we got this far, something failed, redisplay form
return View(model);
}
catch (Exception e)
{
return ExceptionActionResult(e);
}
}
に文字列を送信する方法を知らないか、あなたが理解しない場合、私は私に尋ねます詳細については。私はどんな助けでも満足しています。