2012-07-19 4 views
0

사용자가 유료 (보안 페이지) 옵션을 클릭하면 &에 로그인 한 다음 계정 페이지로 리디렉션하라는 메시지가 표시됩니다. Login_Authenticate 메서드에서 Page.ResolveUrl을 사용하고 있습니다. 로그인 한 후 사용자가 웹 사이트의 다른 페이지로 이동하여 &을 클릭 한 다음 페이로드를 다시 클릭하면 페이지로드에서 Identity.IsAuthenticated 상태를 확인하고 이에 따라 다시 사용자를 계정 페이지로 리디렉션합니다. 이 방법이 올바른지 또는 많은 서버 호출과 관련하여이를 수행하기위한 모범 사례가 있는지 알고 싶습니다. asp:LoginView 또는 Javascript의 LoggedInTemplate을 사용하여이 기능을 수행 할 수 있습니까? 난 당신이 리디렉션과 TransferRequest 모두 할인증 성공 후 리디렉션

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

필요가 없습니다 ... 당신의 심판에 대한 코드를 가지고있다. Response.Redirect는 새 페이지에 액세스하도록 브라우저에 302를 보냅니다. Server.TransferRequest는 요청이 기존 요청 내의 다른 페이지에서 처리되도록합니다. 인증을 수행하는 경우 Response.Redirect를 사용하는 것만으로 현재 세션을 스크랩하고 다시 시작하고자 할 수 있습니다. 나는 이런 상황에서 Response.Redirect를 사용한다. 또한 사용자가 로그인을 위해 다른 페이지로 리디렉션 된 것을 볼 때 유용하다고 생각합니다 (브라우저의 페이지 캐싱 및 앞뒤 탐색에 유용 할뿐만 아니라 인증 및 로그인까지 유용합니다).

+0

시간과 지식에 감사드립니다 ... – Scorpio

관련 문제