我正在通过$.post函数检查用户是否通过身份验证。如果不是,我想将他重定向到登录页面,并将当前url放入?RedirectUrl=参数中(与FormsAuthentication.RedirectToLoginPage()相同)。这么做很热吗?是通过Jquery还是某种.net方法?
发布于 2012-02-26 00:45:14
您可以创建自定义AuthorizeUser属性并覆盖HandleUnauthorizeUser(..)。
然后,您可以验证is request是否为ajax请求,然后返回一个具有适当值的jsonresult,该jsonresult可以由视图中的javascript读取。
尝试下面的代码。(我还没有测试)
public class CustomAuthorizeUserAttribute:AuthorizeAttribute
{
protected override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
var result = new JsonResult();
result.Data = new
{
responseCode = 401,
loginUrl = FormsAuthentication.LoginUrl
};
filterContext.Result = result;
}
else
{
base.HandleUnauthorizedRequest(filterContext);
}
}
}在控制器操作中使用它而不是Authorize属性。
发布于 2012-02-26 00:28:14
如果他不是,你可以返回一个RedirectResult,如果这对你不起作用,我建议在服务器端产生重定向url并通过JSON传递给jQuery。
https://stackoverflow.com/questions/9445751
复制相似问题