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;
}
})
我认为你的问题是这个。在配置中,您有:
<deny users="?"/>
这意味着拒绝匿名用户。但控制器方法具有以下属性:
[AllowAnonymous]
这似乎很奇怪。要么任何人都可以调用该方法,要么它不可调用;不可能两者都有。
编辑:
为了让事情变得更容易,删除配置设置
<deny users="?"/>
意味着任何人都可以访问该网站,因为您没有使用[Authorise]
属性,而是使用[AllowAnonymous]
。如果你有
<deny users="?"/>
则必须删除[AllowAnonymous]
并添加[Authorise]
属性。如果它仍然不起作用,请告诉我们。