2011-08-17 4 views
2

확인 처리 방법이 확실하지 않습니다.ASP.NET 포스트 백 사용자가 로그인하지 않았습니다.

나는 백엔드에 MSSQL이있는 asp.net VB 웹 사이트가 있습니다. pre-init의 모든 페이지에 대해 세션 ("UserID")이 로그인되어 있는지 확인합니다. 로그인 한 경우 세션이로드되고 그렇지 않으면 로그인 페이지로 이동합니다.

내 페이지 중 하나는 누군가가 작성한 후 15 분이 지나면 쓰기 작업을 할 수있는 텍스트 영역을 가지며 저장을 클릭하고 텍스트 영역의 데이터를 데이터베이스에 업로드 할 것을 권장합니다. in.

내가 문제가있는 곳에서 사이트에 모든 사용자를 차서 다시 로그인하도록하는 새 웹 페이지를 사이트에 업로드 할 예정입니까?

는 나는 그들에 loggin에하지 않고 데이터베이스에 기록 할 수있는 보안 결함 것 알고있다.

내가 좋아하는 자신의 컴퓨터에 로컬로 그 텍스트 영역을 저장 뭔가 다른 일을 할 수있는 방법이 있나요? 아니면 내가 생각하지 않은 다른 방법?

답변

0

새 페이지를 배포 할 때 호스트 프로세스가 다시 시작되므로 사용자가 시작됩니다. InProc 세션 (가정)을 사용하면 메모리에 저장된 세션이 손실됩니다.

메모리에 세션을 저장하는 대신 데이터베이스에 저장할 수 있습니다. 사용자가 포스트 백을 수행 할 때마다 데이터베이스에 대한 세션 유효성을 검사합니다.

2

당신이 할 수있는 일은 Sql Server를 사용하도록 세션 상태를 구성하는 것입니다. 귀하의 web.config에서

<configuration> 
    <sessionstate 
     mode="sqlserver" ..... 

이렇게하면 웹 응용 프로그램을 다시 시작하게하는 새로운 웹 페이지를 업로드 할 때 세션이 활성 상태로 유지됩니다.

0

사용자가 사이트를 변경하려고 할 때 게시하거나 알림을 보내야하며, 일요일 아침 2시와 같이 많은 사용자가 사이트에있을 것으로 예상하지 않는 시점에 게시해야합니다. (이것은 분명할지 모르겠다. 나는 바보처럼 들리려고하지 않는다.) D :

아약스 포스트는 몇 분마다 작업을 부분적으로 저장할 수 있기 때문에 그것들을 모두 꺼내 버리면 몇 분 밖에 걸리지 않을 것입니다.

주 데이터베이스를 쓸 수있을 때까지 데이터베이스 트랜잭션을 보유하는 보조 서비스를 설정할 수도 있습니다. 본질적으로 페이지가 서버에 정보를 보내고 임시 데이터베이스에 기록하도록하십시오 - 시스템이 메인 DB가 가동 중인지 확인하기 위해 점검 작업을 수행 한 다음 다시 업데이트 할 때 모든 업데이트를 보내도록하십시오.

사이트를 업데이트하면 본질적으로 모든 세션이 종료됩니다. 그런 업데이트를 통해 세션을 유지하기 위해 할 수있는 일이 있다고 들었지만 MVC3과 관련이 있다고 생각합니다.

행운을 비네.

+0

또는 sassyboy의 web.config 항목을 수행 할 수 있습니다. D – alexpwalsh

관련 문제