未在MVC登录表单中传递返回网址

斯巴达93

我有一个网站,现在我正在按照本教程(http://benfoster.io/blog/aspnet-identity-stripped-bare-mvc-part-1)使用ASP.NET Identity,Owin等添加身份验证。 ..目前,我创建了自己的自定义表单,而不是使用html帮助器和下面的视图片段,但由于某种原因,我认为我没有正确传递返回网址,因此我收到404错误。有人可以帮我吗?我是.NET MVC的初学者。提前致谢。

@Html.ValidationSummary(true)

@using (Html.BeginForm())
{
  @Html.EditorForModel()
  <p>
    <button type="submit">Log In</button>
  </p>
}

模型

public class LogInModel
{
    [Required]
    [DataType(DataType.EmailAddress)]
    public string Email { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password { get; set; }

    [HiddenInput]
    public string ReturnUrl { get; set; }
}

控制器

[AllowAnonymous]
    public class AuthController : Controller
    {
        // GET: Auth
        [HttpGet]
        public ActionResult LogIn(string returnUrl)
        {
            var model = new LogInModel
            {
                ReturnUrl = returnUrl
            };

            return View(model);
        }

        [HttpPost]
        public ActionResult LogIn(LogInModel model)
        {
            if (!ModelState.IsValid)
            {
                return View();
            }

            // Don't do this in production!
            if (model.Email == "[email protected]" && model.Password == "#G16#")
            {
                var identity = new ClaimsIdentity(new[] {
                new Claim(ClaimTypes.Name, "Admin"),
                new Claim(ClaimTypes.Email, "[email protected]"),
                new Claim(ClaimTypes.Country, "USA")
            },
                    "ApplicationCookie");

                var ctx = Request.GetOwinContext();
                var authManager = ctx.Authentication;

                authManager.SignIn(identity);

                return Redirect(GetRedirectUrl(model.ReturnUrl));
            }

            // user authN failed
            ModelState.AddModelError("", "Invalid email or password");
            return View();
        }

        private string GetRedirectUrl(string returnUrl)
        {
            if (string.IsNullOrEmpty(returnUrl) || !Url.IsLocalUrl(returnUrl))
            {
                return Url.Action("index", "home");
            }

            return returnUrl;
        }

        public ActionResult LogOut()
        {
            var ctx = Request.GetOwinContext();
            var authManager = ctx.Authentication;

            authManager.SignOut("ApplicationCookie");
            return RedirectToAction("index", "home");
        }
    }

看法

    <div class="col-md-4" style="margin-top:200px;">
        @using (Html.BeginForm("LogInModel", "LogIn", FormMethod.Post, new { @class="form-horizontal" }))
        {
            <div class="form-group">
                <label class="label label-default">Email Address</label>
                <div class="form-control">
                    @Html.TextBoxFor(m => m.Email, new { @class = "form-control"})
                </div>
            </div>

            <div class="form-group">
                <label class="label label-default">Password</label>
                <div class="form-control">
                    @Html.TextBoxFor(m => m.Password, new { @class = "form-control" })
                </div>
            </div>

            @Html.HiddenFor(m => m.ReturnUrl)

            <button class="btn btn-default" type="submit">Log In</button>
        }
    </div>
克里斯蒂·普夫(Cristi Pufu)

您使用不Html.BeginForm正确。

代替:

Html.BeginForm("LogInModel", "LogIn", FormMethod.Post, new {})

它应该是:

Html.BeginForm("LogIn", "Auth", FormMethod.Post, new {})

正确用法

Html.BeginForm("actionName", "controllerName", FormMethod.Post, new {})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

网址无法识别表单操作中传递的ID

来自分类Dev

Rails 4嵌套表单未在参数中传递嵌套属性

来自分类Dev

Rails 4嵌套表单未在参数中传递嵌套属性

来自分类Dev

如何在Django的表单类中传递当前登录的用户

来自分类Dev

存储过程未在MVC5中返回值

来自分类Dev

动态下拉列表未在MVC中返回任何值

来自分类Dev

存储过程未在MVC5中返回值

来自分类Dev

第一页MVC中的登录表单

来自分类Dev

网址中的登录显示信息

来自分类Dev

登录网址中的ReturnUrl参数

来自分类Dev

登录后 Laravel 返回登录表单

来自分类Dev

在FormCollection MVC表单中传递的复选框值

来自分类Dev

表单未在IE中显示

来自分类Dev

角表单组未在提交时返回

来自分类Dev

网址未在WKWebView中快速打开

来自分类Dev

某些网址未在iframe中打开

来自分类Dev

{{uploadUrl}}的数据网址未在范围网址中交换(AngularJS)

来自分类Dev

在javascript网址中传递参数

来自分类Dev

在PHP中传递网址的问题

来自分类Dev

在javascript网址中传递参数

来自分类Dev

在MVC中,表单过帐返回空模型

来自分类Dev

路由未在MVC 4中的Html.ActionLink属性中传递的值

来自分类Dev

路由未在MVC 4中的Html.ActionLink属性中传递的值

来自分类Dev

mmap()返回未在函数之间传递

来自分类Dev

数据未在 Swift 中传递

来自分类Dev

在material-ui react登录表单中单击提交未传递数据

来自分类Dev

将数据从“HTML”登录表单传递到“PHP”以从“MySQL”数据库中检索数据

来自分类Dev

登录表单中登录按钮的“属性”

来自分类Dev

javascript未在mvc中触发