0

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

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);
    }
}
4

1 回答 1

1

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

于 2012-07-19T18:59:18.353 回答