簡體   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