首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MVC 3如何手动创建重定向URL?

MVC 3如何手动创建重定向URL?
EN

Stack Overflow用户
提问于 2012-02-26 00:25:56
回答 2查看 263关注 0票数 0

我正在通过$.post函数检查用户是否通过身份验证。如果不是,我想将他重定向到登录页面,并将当前url放入?RedirectUrl=参数中(与FormsAuthentication.RedirectToLoginPage()相同)。这么做很热吗?是通过Jquery还是某种.net方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-26 00:45:14

您可以创建自定义AuthorizeUser属性并覆盖HandleUnauthorizeUser(..)。

然后,您可以验证is request是否为ajax请求,然后返回一个具有适当值的jsonresult,该jsonresult可以由视图中的javascript读取。

尝试下面的代码。(我还没有测试)

代码语言: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属性。

票数 1
EN

Stack Overflow用户

发布于 2012-02-26 00:28:14

如果他不是,你可以返回一个RedirectResult,如果这对你不起作用,我建议在服务器端产生重定向url并通过JSON传递给jQuery。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9445751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档