2011-10-03 3 views
0

사용자 이름과 암호를 입력하는 로그인 폼을 원한다면 올바른 사용자 일 경우 처음 로그인 할 때 처음 로그인 할 때 shd 리디렉션을 사용하여 비밀번호 형식을 변경하십시오. 실버 라이트 구현이 코드를 작성하기 위해 wcf 서비스를 사용하고 있으므로 세션에서 사용자 이름을 저장하고 암호 형식을 변경하기 위해 리디렉션되지만 때로는 사용자 이름을 먼저 저장 한 다음 올바른 암호 형식으로 리디렉션합니다. 하지만 다음 번에 같은 양식을 실행하면 먼저 비밀번호 양식을 변경하도록 리디렉션 한 다음 사용자 이름 세션을 설정하여 사용자 이름도 올바르므로 로그인 양식으로 리디렉션하여 미친 짓을하게하십시오. 여기 내 코드입니다silverlight 실행 순서가 이상하다

gen.SetSessionVariableAsync ("uname", username.Text); App.Navigate (새 UserMgt.Changepassword());

이상적으로 첫 번째 줄은 첫 번째 줄을 실행해야하고 두 번째 줄은 두 번째 줄을 실행해야하지만 여기서는 처음 몇 번 먼저 컴파일하고 두 번째 줄을 먼저 컴파일해야합니다.

우선 세션 변수를 설정하고 암호 페이지를 변경하기 위해 리디렉션하고 싶지만 때로는 적절하지만 때로는 먼저 비밀번호를 변경하도록 리디렉션 한 다음 세션 변수로 설정하는 이유는 무엇입니까? 시퀀스의 순서가 잘못 되었나요?

문장의 순서를 알려주세요. 실버 라이트가 실행됩니다. 도움이 많이 필요합니다. 나를 [email protected]으로 이메일을 보내실 수도 있습니다.

답변

0

SetSessionVariableAsync() 메서드는 비동기이므로 완료 될 때 보장 할 수 없습니다. 첫 번째 방법에 대해 완료된 이벤트에서 두 번째 메서드를 시작해야합니다.

1

코드를 작성하는 순서대로 비동기 작업을 완료 할 수 없습니다. 순서로 작업을 얻을 수있는 방법은 다음과 같이이 다음과 같은 방법을 실행하기 위해 다음 비동기 방식에 완료된 이벤트를 사용하는 것입니다 : 나는 위의 코드 조각에서 람다 표현식을 사용하고

gen.SetSessionVariableAsync("uname", username.Text).Complete((o,e)=> 
{ 
    App.Navigate(new UserMgt.Changepassword()); 
}); 

참고.