身份验证成功后重定向

时间:2012-07-19 16:43:30

标签: c# asp.net authentication redirect login

当用户点击付款单(安全页面)选项时,系统会提示他/她登录&然后被重定向到帐户页面。我在Page.ResolveUrl方法中使用Login_Authenticate。登录后,如果用户导航到网站上的任何其他页面&然后再次点击paybill,我检查页面加载中的Identity.IsAuthenticated状态,并根据此情况再次将用户重定向到帐户页面。我想知道这是否是正确的方法,或者是否有任何最佳实践,因为这涉及大量的服务器调用。我可以使用LoggedInTemplate或Javascript中的asp:LoginView执行此功能吗?我有你的参考代码......

protected void Page_Load(object sender, EventArgs e)
{
    //to directly link user to account if it's authenticated
    var userauth = System.Web.HttpContext.Current.User.Identity.IsAuthenticated;
    if (userauth)
    {
        string urlredirect = Page.ResolveUrl("~/" + SiteConfig.PageMappings["ACCOUNT"]);
        Response.Redirect(urlredirect);
        Server.TransferRequest(urlredirect);
    }
}

1 个答案:

答案 0 :(得分:1)

您无需同时执行Redirect和TransferRequest。 Response.Redirect向浏览器发送302以告知它访问新页面。 Server.TransferRequest使请求在现有请求中的不同页面中处理。如果您正在进行身份验证,则可能需要废弃当前会话并重新开始,这意味着只需使用Response.Redirect。我在这种情况下使用Response.Redirect。我也认为用户可以看到它们被重定向到另一个页面进行登录(以及对浏览器中的页面缓存和来回导航很有用.W.r.t进行身份验证和登录)。