[英]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.