Jquery MVC表单身份验证在用户登录后不起作用
我有一个登录方法,可以成功地与数据库通信,并在4.5.1中设置authCookieJquery MVC表单身份验证在用户登录后不起作用,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我有一个登录方法,可以成功地与数据库通信,并在4.5.1中设置authCookie [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public ActionResult Login(LoginModel model) { //call my DB FormsAuthentication.SetAuthCookie(model.UserName, false); return Redirect
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Login(LoginModel model)
{
//call my DB
FormsAuthentication.SetAuthCookie(model.UserName, false);
return RedirectToAction("Index");
}
然后我重定向到一个用[Authorize]修饰的索引页
它的工作原理与预期一致
在这个页面上,我有一个从Jquery/Ajax调用的HttPost方法:
[HttpPost]
public ActionResult RemovePermission(string staff)
{
if (User.Identity.IsAuthenticated)
{
DataAccessor d = new DataAccessor();
d.Remove(staff);
}
return RedirectToAction("Index", "Home");
}
如果我用[Authorize]修饰这个方法,它就不起作用了。永远不要进入这个方法,大概是因为它认为用户没有登录。。如果我不这样做,并检查用户是否在上面的If语句中进行了身份验证,则它们不是
//Web.Config
表单loginUrl=~/Home/LogIn timeout=1000
我缺少什么?如果您有以下内容,请尝试将其从web.config中的模块中删除:
<remove name="FormsAuthenticationModule" />
如果创建持久cookie会发生什么?ie:在方法调用中将布尔值设置为true。FormsAuthentication.SetAuthCookiemodel.UserName,true;如果您的getting on RemovePermission方法的错误代码是401,那么是的,那么您可以确定这是一个权限问题,我尝试过解决这个问题。这件事让我很困惑。从我读到的有关FormsAuthentication.SetAuthCookie的内容。它只使用经过身份验证的信息来装饰下一个http请求,而不超过该信息。我不敢相信会是这种情况,但似乎就是这样。谢谢你的回复,我创建了一个空的MVC项目,在web.config中没有行或部分。