returnUrl在Login(string returnUrl)中来自哪里?

时间:2015-05-27 18:39:37

标签: c# asp.net asp.net-mvc forms post

我有一个请求的页面,如

/Bundler/Index?bid=153981866a37428a91ac870fa5cb169e

我决定重定向到

/Account/Login

页面,如果用户未登录。但是,我喜欢这样,一旦用户登录,他们就会被重定向回该页面。

我试过从ASP.NET MVC模板中学习Login函数(我拒绝调用函数"方法!"它让我想起Java),我相信签名中显示的参数returnUrl

    //
    // GET: /Account/Login
    [AllowAnonymous]
    public ActionResult Login(string returnUrl)
    {
        ViewBag.ReturnUrl = returnUrl;
        return View();
    }

    //
    // POST: /Account/Login
    [HttpPost]
    [AllowAnonymous]
    [ValidateAntiForgeryToken]
    public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
    {
        if (!ModelState.IsValid)
        {
            return View(model);
        }

        // This doesn't count login failures towards account lockout
        // To enable password failures to trigger account lockout, change to shouldLockout: true
        var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);
        switch (result)
        {
            case SignInStatus.Success:
                return RedirectToLocal(returnUrl);
            case SignInStatus.LockedOut:
                return View("Lockout");
            case SignInStatus.RequiresVerification:
                return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return View(model);
        }
    }

是用户成功登录后将被定向到的网址。但是,我不确定如何传递returnUrl的值。

/Account/Login页面

表格

<form action="/Account/Login" class="form-horizontal" method="post" role="form">

看起来不包含与参数returnUrl对应的任何输入,因为没有该名称的参数。

那么,我该怎么称呼,例如,

Login("/Bundler/Index?bid=153981866a37428a91ac870fa5cb169e")

??

0 个答案:

没有答案
相关问题