2011-02-11 5 views
1

나는 겉으로보기에는 쉬운 문제가 있고 올바른 해결책을 고안하는 데 어려움을 겪고 있습니다.asp.net login - 메시지 프롬프트로 방해받는 방법?

정상적인 asp .net 로그인 컨트롤이 있습니다.

경고 : 사용자가 로그인이 나는 같은 자바 스크립트 메시지 프롬프트를 표시 할 (그리고 성공적으로 인증) 할 때 만 한

있습니다 등 ... 정부 시스템 이 작업을 수행하는 방법은 ...하지만 로그인 사용자 정의 컨트롤 안에 보관하고 싶습니다. 나는 행운을 빌어 다음과 같은 방법으로 놀았습니다.

protected void OnAuthenticate(object sender, AuthenticateEventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 
} 

protected void OnLoggingIn(object sender, LoginCancelEventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 
} 

protected void OnLoggedIn(object sender, EventArgs e) 
{ 
    Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 
} 

포스트 백 페이지 수명주기가 나를 망쳐 놓은 것처럼 보입니다.

어쩌면 내가 다르게 생각해야할까요?

로그인 페이지 -> (성공) -> 경고 메시지 페이지 -> 어떤 조언을 크게 감상 할 수

사용자 대시 보드 페이지입니다.

감사합니다.

-Josh

편집 : 나는 또한 ("....") Page.ClientScript.RegisterClientScriptBlock을 시도했습니다;

+2

사용자가'Response.Redirect()'를 호출하여 로그인 한 후 사용자를 리디렉션합니까? 이로 인해 등록 된 JavaScript가 발행되지 않습니다. –

답변

1

마스터 페이지/기본 페이지 및 세션을 사용하고 있습니까? 경고가 아닌 첫 번째 로그인 페이지에 표시 될 수 있도록 당신이이 방법을 수행 할 수 있습니다

protected void Page_load(object sender, EventArgs e) 
{ 
    if (Request.IsAuthenticated && !Page.IsPostBack())  
     if (session["warningShown"] == null or session["warningShown"] == false) 
     { 
     session["warningShown"] = true; 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "warning", "alert('hello');", true); 

     } 
    } 
} 
0

그것이 내가 다시 하루에 고전적인 ASP와 같은 것을 할하는 데 도움이된다면 ...

if (confirm('Yes or no')) 
    { 
    return true; 
    } 

는 Response.Write에 문 페이지로 작성되었습니다 :

내 자바 스크립트의 라인을 따라했다. 사용자가 확인을 클릭하면 리디렉션됩니다. 그들이 클릭을 취소하면 그들은 페이지에 머물러있게됩니다. (이 작업을 한 지 오래다는 것을 인정합니다. 따라서 정확한 구문이 아닐 수도 있습니다.)

이것은 정확히 원하는 대상이 아니지만 올바른 방향으로 나아갈 수 있습니다.