2012-01-24 2 views
1

私は小さなtodoアプリをhtml5でビルドしています。これまでのところうまく動作しますが、問題があります。ユーザーがhttp://www.mydomain.com/にアクセスした場合、ログインするように求められます。彼がログインしている場合/別のテンプレートが提供されます - >私のメインアプリケーションテンプレート。さらに、セッション処理のためにクッキーが設定されています。HTML5オフライン/オンラインアプリ

彼は彼のtodosを追加/削除/編集できます。彼がオンラインの間、todosはサーバーに保存されます。 自分のサイトのキャッシュマニフェストを追加し、ローカルストレージを使用してオフライン時に自分のtodosを保存します。これはこれまでのところうまく動作します。

問題:ユーザーがオンラインで、自分自身をログアウトしてサーバーがメインアプリケーションテンプレートを使用していない場合、ブラウザはオフラインバージョンのサイトを使用します。しかし、ブラウザがオフラインの場合にのみ使用してください。サーバが別のテンプレートを同じパスで送信しているときではありません。

誰かが私のヒントですか?前もって感謝します!

答えて

0

この機能を使用して、クライアントマシンに保存されているCookieを取得します。 nullが返された場合は、ユーザーがログアウトしたことを意味します。これは、ページがロードされるたびに実行する必要があります。ユーザーをログインページにリダイレクトすることもできます。

var function getCookie(c_name) 
     { 
     var i,x,y,ARRcookies=document.cookie.split(";"); 
     for (i=0;i<ARRcookies.length;i++) 
     { 
      x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("=")); 
      y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1); 
      x=x.replace(/^\s+|\s+$/g,""); 
      if (x==c_name) 
      { 
      return unescape(y); 
      } 
      } 
     } 

var cookie = getCookie("myDomainAuthenticationCookie"); 

if(cookie == null) 
{ 
window.location.href = "/myDomain.com/Accounts/Login" 
}