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

时间:2014-10-20 07:59:57

标签: c# jquery asp.net-mvc asp.net-mvc-4 asp.net-ajax

我在我的应用程序中使用基于cookie的表单身份验证,并通过ajax登录我的应用程序。当我在web.config.my ajax函数中应用Authorization标记时,在控制器中调用login action方法。我的代码在这里。请提出任何建议......

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

Controller ActionMethod

   [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;
                }
            })

1 个答案:

答案 0 :(得分:0)

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

<deny users="?"/>

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

[AllowAnonymous]

这看起来很奇怪。要么这个方法可以被任何人调用,要么不是;它不可能都是。

编辑:

为简化操作,请删除配置设置

<deny users="?"/>

表示任何人都可以访问该网站,因为您没有使用[Authorise]属性,但正在使用[AllowAnonymous]。如果你有

<deny users="?"/>

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