2009-03-03 4 views
0

여기 상황이다로그 아웃하는 것이 더 쉽고/또는 쉬운 방법이 있습니까?

  1. 사용자는 MSSQL 데이터베이스 사용자가 인증되면
  2. 에 저장된 사용자 이름/암호를 통해 로그인 할 시스템은 사용자 이름/SHA1'd 암호를 사용하여 세션 변수를 만들고 어떤가 사용자가 로그인했는지 여부 (이후 페이지)
  3. 세션 변수를 삭제할 수 있어야합니다. 나는 또한 확인 상자를 원한다.

이 내가 지금까지 무엇을 가지고 :

<script type="text/javascript"> 
    //<![CDATA[ 
    function doLogout() { 
     try { 
      var conf = false; 
      conf = confirm("Really log out?"); 
      if (conf === true) { 
       $.post("logout.aspx"); 
      } 
     } catch (ex) { 
      alert(ex); 
     } 
    } 
    //]]> 
</script> 

이 페이지를 (기능이 요청이 세션을 파괴, 잘 작동) 다시로드되지 않습니다 아약스 요청이기 때문에, 나는 필요가 있다고 생각 이것을하기위한 다른 접근법. 가능한 경우 ASP.NET에서이 모든 작업을 수행하고 싶습니다.

위의 # 3이 충족되는 한 모든 해결책을 환영합니다.

답변

1

글쎄, 당신의 솔루션은 자바 스크립트를 가진 사용자에 달려 있습니다. 그렇지 않으면 로그 아웃 할 수 없습니다. 나는 당신이 이것을 위해 AJAX를 사용해야한다고 생각하지 않는다. logout.aspx에 대한 간단한 링크/버튼 만 있으면 좋을 것이다. 그러면 로그 아웃 된 상태로 홈 페이지로 바뀔 수있다. 그런 다음 눈에 잘 띄지 않는 Javascript를 사용하여 확인을 추가 할 수 있습니다. (당신이 언급 한 이후 그)

의 jQuery 버전 :

<a href="logout.aspx" id="logout-link">Logout</a> 
<script type="text/javascript"> 
    //<![CDATA[ 
    $(document).ready(function() { 
     $('#logout-link').click(function() { 
      return confirm("Really log out?"); 
     }); 
    }); 
    //]]> 
</script> 

순수 자바 스크립트 버전 :

<a href="logout.aspx" id="logout-link">Logout</a> 
<script type="text/javascript"> 
//<![CDATA[ 
window.onload = function() { 
    if(!document.getElementById) return; 
    document.getElementById('logout-link').onclick(function() { 
     return confirm("Really log out?"); 
    }); 
} 
//]]> 
</script> 
+0

감사합니다! 이것은 완벽하게 작동합니다. 내 자바 스크립트를 닦을 필요가, 몇 년되었습니다 : P는 – Anders

관련 문제