我正在使用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");
}
}
答案 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");
}