2

폼 인증을 사용하는 ASP.NET에 응용 프로그램이 있습니다. 다음 코드가 있습니다.ViewStateUserKey가 때때로 유효성을 검사하지 않습니다.

if (User.Identity.IsAuthenticated) 
     ViewStateUserKey = User.Identity.Name; 

이 코드는 각 페이지로드시 실행됩니다. 로그인 한 사용자가 페이지를 요청하면 ViewStateUserKey는 해당 사용자 이름으로 채워집니다. 양식 승인 시간이 초과 될 때까지 페이지를 계속 보게하면 사용자는 더 이상 로그인하지 않으며 이름은 이제 null이기 때문에 viewstate의 유효성 확인시 포스트 백이 실패합니다. 그러나 화면에 다른 버튼을 넣으면 다시 알 수 있습니다. 인증이 시간 초과 된 후에도 게시가 실패하지 않습니다. 이 오류가 시간 초과 될 때마다해야합니까?

+1

명확히하기 : Page_Init에이 코드가 있습니까? – StriplingWarrior

+0

예, 코드는 페이지 초기화에 있으며 양식 승인이 시간 초과되지 않으면 올바르게 작동합니다. –

답변

0

page_init에 있으면 응답이 쉽고 viewstate가 page_init 후에로드됩니다. 여기에는 Pagelifecycle에 대한 설명이 있습니다.이 설명은 페이지 초기화 이벤트 이후로드보기 상태가 발생 함을 설명합니다. 보기 변수는 page_init에서 사용할 수 없습니다.