首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在IRouteHandler.GetHttpHandler()中,我可以重定向吗?

在IRouteHandler.GetHttpHandler()中,我可以重定向吗?
EN

Stack Overflow用户
提问于 2008-12-08 23:46:57
回答 1查看 1.7K关注 0票数 4

作为对未经验证的热门技术的狂热爱好者,我在Web Forms应用程序中采用了System.Web.Routing来管理导航等。此外,我希望将基于角色的安全性从web.config转移到路由定义本身,这样我就可以说“此路由仅对角色x,y可用”。

因此,我得到了实现IRouteHandler的类,在尝试加载特定页面之前,它会检查用户是否在它允许的角色集中。我的问题是,如果它们不是,我如何重定向到该处理程序中的登录页面?我知道在这种情况下可以加载登录页面,但我更喜欢使用“returnto to”页面的干净重定向。

代码语言:javascript
复制
public IHttpHandler GetHttpHandler(RequestContext requestContext) {

if ( AllowedRoles != null )
{
    bool allowed = false;

    for ( int i = 0; i < AllowedRoles.Length; i++ )
    {
        if ( requestContext.HttpContext.User.IsInRole( AllowedRoles[i] ) )
        {
            allowed = true;
            break;
        }
    }

    if ( !allowed )
    {
        ???
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-01-25 22:15:57

从GetHttpHandler进行重定向是可能的。只需使用:

代码语言:javascript
复制
requestContext.HttpContext.Response.Redirect("login.aspx");
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/351354

复制
相关文章

相似问题

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