当用户点击付款单(安全页面)选项时,系统会提示他/她登录&然后被重定向到帐户页面。我在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);
}
}
答案 0 :(得分:1)
您无需同时执行Redirect和TransferRequest。 Response.Redirect向浏览器发送302以告知它访问新页面。 Server.TransferRequest使请求在现有请求中的不同页面中处理。如果您正在进行身份验证,则可能需要废弃当前会话并重新开始,这意味着只需使用Response.Redirect。我在这种情况下使用Response.Redirect。我也认为用户可以看到它们被重定向到另一个页面进行登录(以及对浏览器中的页面缓存和来回导航很有用.W.r.t进行身份验证和登录)。