我在我的应用程序中使用基于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;
}
})
答案 0 :(得分:0)
我认为你的问题是这个。在配置中,您有:
<deny users="?"/>
这意味着拒绝匿名用户。但控制器方法具有以下属性:
[AllowAnonymous]
这看起来很奇怪。要么这个方法可以被任何人调用,要么不是;它不可能都是。
编辑:
为简化操作,请删除配置设置
<deny users="?"/>
表示任何人都可以访问该网站,因为您没有使用[Authorise]
属性,但正在使用[AllowAnonymous]
。如果你有
<deny users="?"/>
然后您必须删除[AllowAnonymous]
并添加[Authorise]
属性。如果它仍然不起作用,请告诉我们。