用户登录后重定向到默认页面除以外的页面

时间:2013-12-28 00:06:37

标签: asp.net templates authentication visual-studio-2012 login

我正在使用Visual Studio 2012,并使用“ASP.NET Web Forms App”(不是空项目)创建了一个项目。该项目处理创建新登录和默认更改密码。用户登录后,会将其重定向到默认页面。如何在用户登录后更改用户重定向的页面?

这种方式非常适合重定向所有用户:

<asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false" OnLoggedIn="Log_LoggedIn" ID="Log">

我想将每个用户重定向到另一个页面。我无法弄清楚语法是否能让我按照我想要的方式工作。

public partial class Login : Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (this.Page.User != null && this.Page.User.Identity.IsAuthenticated)
        {
            if (this.Page.User.Identity.Name.Equals("me")) this.Response.Redirect("~/somepage");
            else this.Response.Redirect("~/Default.aspx");
        }
        else this.Response.Redirect("~/Account/Login.aspx");
    }
}

2 个答案:

答案 0 :(得分:3)

web.config(configuration / system.web / authentication /)中找到此条目:

<forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="~/" />

并将defaultUrl设置为您想要的页面。

更改登录行为:

在/Account/Login.aspx

中找到
<asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false"...

改为......

 <asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false" OnLoggedIn="Log_LoggedIn" ID="Log">

在代码中添加处理程序(/Account/Login.aspx.cs)

    protected void Log_LoggedIn(object sender, EventArgs e)
    {
        Response.Redirect("/wherever");
    }

答案 1 :(得分:0)

我想出了一些代码来实现我想要做的事情。如果用户匹配某个名称,我想重定向用户页面:

var Username = Page.User.Identity.Name;
        if (Username == "me")
        {
            Response.Redirect("~/somepage");
        }