2011-11-29 3 views
2

asp.net mvc 2를 사용하여 만든 간단한 jQuery Mobile 사이트가 있고 기본 양식 인증을 사용하여 사이트에 대한 액세스 권한을 부여합니다.오프라인 응용 프로그램에 대한 사용자 인증

응용 프로그램은 지역 관리자가 지역 팀에 할당 된 현재 문제에 대한 세부 정보를 볼 수있는 간단한 작업 일기입니다.

모바일 연결이 가능하면 응용 프로그램이 잘 작동하지만 신호가 없기 때문에 응용 프로그램의 핵심을 오프라인으로 사용할 수 있는지 조사해야합니다. 나는 HTML 5를 사용하여 앱을 오프라인으로 만들 가능성을 연구하고 있지만 사용자 인증에 대한 정보는 찾을 수 없습니다.

이 앱은 매우 기본이며 본질적으로 두 가지 다른 목록 화면이있어 작업 세부 정보를 자세히 볼 수 있습니다.

1. Login  
    1.1 Job List  
     2. Job Details 

    1.2 Team Diary  
     2. Job Details 

나는 연결을 사용할 수없는하지만 난 그것을하기 전에 인증이 필요한 사이트에 대한 정보를 찾을 수 없을 때 일기의 검색을 허용 할 데이터의 오프라인 버전을 만들 수있을만큼 쉽게 될 것이라고 생각 오프라인으로 전환 할 수있는 페이지로 이동합니다.

콘텐츠는 민감한 데이터는 아니지만 클라이언트는 누구나 공개 대면 웹 사이트에서 업무 일지를 탐색 할 수 없도록하려는 것입니다.

잠재적으로 오프라인에서 사용할 수있는 사이트의 사용자를 인증하는 기본 방법은 무엇입니까?

+1

일단 로그인하고 필요에 따라 업데이트하면 기기에 데이터 만 다운로드 할 수 있습니까? 그들이 한 번 로그인했다면 이미 인증을 마친 것입니다. 항상 주위에 방법이 있기 때문에 현지에서 구현하는 것이 이상하게 보입니다. – EricR

+1

응답 해 주셔서 감사합니다. 인증 된 페이지를 다운로드하는 것은 나에게 맞는 것입니다. 인증 시간 제한에 어떤 영향이 있을지 궁금합니다. 양식 인증 시간이 초과되어 다른 온라인 로그인이 필요한 경우 오프라인 페이지에 연결할 수 없습니까? – fluent

+0

가 답변으로 추가되었습니다. 이게 니가 찾고 있던거야? – EricR

답변

0

오프라인 사용을 위해 MVC3 사이트를 수정 중이며 일부 문제가 발생합니다.

주의해야 할 점은 브라우저가 cache.manifest에 나열된 모든 파일을 즉시 다운로드하려고한다는 것입니다. 사용자가 아직 로그인하지 않은 상태에서 사용자가 인증되지 않은 경우 로그인 페이지에 대한 클래식 리다이렉션이있는 경우 문제가 발생합니다. 이 페이지의 "정적"뷰를 공용 액세스로 열어야하고 업데이트를 검색/보내기하기 전에 사용자가 로그인했는지 여부를 JavaScript가 결정하게해야합니다. 이렇게하면 브라우저가 정적 인 콘텐츠가 아닌 페이지를 다운로드 할 수 있으며 필요한 경우 JavaScript가 콘텐츠를 관리 할 수 ​​있습니다.

내 앱은 Jim Lehmer to detect online connectivity에서 빌린 메소드를 사용합니다.

우리는 내가 잘 사용자가 인증 여부를 반환 내 계정 컨트롤러에 약간의 액션을 만들어 연결 찾으면 : 도움이

public JsonResult IsAuthenticated() 
    { 
     return Json(new { Request.IsAuthenticated }, JsonRequestBehavior.AllowGet); 
    } 

희망!

4

아. 네가 지금 묻고있는 것을 나는 본다. 나는 다음과 같이 제안 할 것이다.

사용자가 응용 프로그램에 처음 액세스 할 때 로컬 데이터 (올바른 로컬 데이터?)가 있는지 확인하고 해당 로컬 데이터가 있으면 사용자가 시스템에 액세스 할 수 있다고 가정합니다. 이제 인터넷 연결이 있는지 확인하십시오. 연결이없는 경우 적절한 자격 증명을 요청하십시오. 따라서 그들은 오프라인에서도 즐겁게 일할 수 있습니다.

해당 사용자가 인터넷에 다시 연결되면 원격 사용자와 동기화하기 전에 사용자에게 자격 증명을 요청하십시오. 원래 인터넷에 연결되어있는 경우 응용 프로그램은 의심의 여지없이 적절한 인증 토큰을 저장하고 질문없이 동기화 할 수 있습니다. 그렇지 않으면 지금 암호를 물어보십시오.

관련 문제