MVC4中存在表单身份验证的AJax调用问题

本文关键字:AJax 调用 问题 身份验证 存在 表单 MVC4 | 更新日期: 2023-09-27 18:27:10

我在应用程序中使用基于cookie的表单身份验证,并通过ajax登录应用程序。当我在web.config.my ajax函数中应用Authorization标记时,停止调用控制器中的登录操作方法。我的代码在这里。有什么建议请。。。

  <authorization>
  <deny users="?"/>
</authorization>

控制器操作方法

   [HttpPost]
    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Login(string userName, string Password)
    {}

AJAX方法

          $.ajax({
                type: "POST",
                url: '@Url.Action("Login", "Secur")',
                data: "{userName:'" + UName + "',Password:'" + UPwd + "'}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                async: true,
                cache: false,
                success: function (msg) {
                    if (msg == "Successed") {
                        window.location.href = "Home/Dashboard";}

                },
                error: function (e) {`enter code here
                    return false;
                }
            })

MVC4中存在表单身份验证的AJax调用问题

我认为你的问题是这个。在配置中,您有:

<deny users="?"/>

这意味着拒绝匿名用户。但控制器方法具有以下属性:

[AllowAnonymous]

这似乎很奇怪。要么任何人都可以调用该方法,要么它不可调用;不可能两者都有。

编辑:

为了让事情变得更容易,删除配置设置

<deny users="?"/>

意味着任何人都可以访问该网站,因为您没有使用[Authorise]属性,而是使用[AllowAnonymous]。如果你有

<deny users="?"/>

则必须删除[AllowAnonymous]并添加[Authorise]属性。如果它仍然不起作用,请告诉我们。