繁体   English   中英

在站点登录后重定向

[英]Redirect after login in site

我在Web应用程序中使用asp登录控件(ASP.NET 4)。 如果管理员角色的用户我想重定向到管理页面。

我使用此代码,但不工作:

protected void baseLogin1_LoggingIn(object sender, LoginCancelEventArgs e)
    {
        if (Page.User.Identity.IsAuthenticated && Roles.IsUserInRole(Page.User.Identity.Name, "Admin"))
        {
            Page.Response.Redirect("admin/Default.aspx");
        }
    }

请帮我。

在用户通过身份验证之前引发LoggingInEvent。 所以你的病情的第一部分总是假的。 在LoggedIn事件下移动逻辑。 试试这个:

protected void baseLogin1_LoggedIn(object sender, EventArgs e)
{
    if (Context.User.Identity.IsAuthenticated && Context.User.IsInRole("Admin"))
    {
        Context.Response.Redirect("admin/Default.aspx");
    }
}

使用LoggedIn事件:事件描述在这里

你应该真的使用Server.Transfer("~/admin/Default.aspx"); 因为它更有效(更少的往返)。

如果页面需要保留书签的查询字符串,或者在浏览器中预先设置正确的URL很重要,则需要Response.Redirect() ,但要注意额外的带宽成本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM