質問

ASP.NET MVC 2を使用して作成されたシンプルなjQueryモバイルサイトがあり、基本フォーム認証を使用してサイトへのアクセスを許可します。

このアプリケーションは、地域のマネージャーが地域チームに割り当てられた現在の問題に関する詳細を表示できる簡単な作業日記です。

モバイル接続が利用可能な場合、アプリは非常にうまく機能しますが、信号が不足しているため、アプリケーションのコアをオフラインにする可能性を調査する必要があります。 HTML 5を使用してアプリをオフラインにする可能性を調査していますが、認証ユーザーに関する情報は見つかりません。

このアプリは非常に基本的で、基本的にジョブの詳細にドリルする2つの異なるリスト画面があります。

1. Login    
    1.1 Job List    
        2. Job Details

    1.2 Team Diary    
        2. Job Details

接続が利用できないときに日記の閲覧を許可するデータのオフラインバージョンを作成するのに十分簡単だと思いますが、許可されているページに到達する前に認証を必要とするサイトに関する情報を見つけることができませんオフラインになります。

コンテンツは機密データではありませんが、明らかに、クライアントは誰もが公開されているウェブサイトで作業日記を閲覧できることを望んでいません。

オフラインで使用できる可能性のあるサイトでユーザーを認証する好ましい方法は何ですか?

役に立ちましたか?

解決

私はオフラインで使用するためにMVC3サイトを刷新しており、同じ問題のいくつかに遭遇しています。

注意する必要があることの1つは、ブラウザがcache.manifestにリストされているすべてのファイルをすぐにダウンロードしようとすることです。これにより、ユーザーがまだログインしていない場合に問題が発生し、ユーザーが認証されていない場合は、ログインページに古典的なリダイレクトがあります。これらのページの「静的」ビューを開き、パブリックアクセスして、更新を取得/送信する前に、ユーザーがログインしているかどうかをJavaScriptに判断できるようにする必要があります。これにより、静的非コンテンツページをブラウザからダウンロードし、JavaScriptが必要に応じてコンテンツを管理できるようになります。

私のアプリは、借りた方法を使用しています Jim Lehmerはオンライン接続を検出します.

接続されていることがわかったら、ユーザーが認証されているかどうかにかかわらず、次のように適切に返信する小さなアクションを作成しました。

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

それが役立つことを願っています!

他のヒント

ああ。私はあなたが今何を求めているかわかります。次のように提案します。

ユーザーが最初にアプリケーションにアクセスすると、ローカルデータの存在(正しいローカルデータ?)をチェックし、そのローカルデータが存在する場合、ユーザーがシステムにアクセスできると想定します。ここで、インターネット接続が存在する場合は、接続がオフラインで動作しない場合は、適切な資格情報を要求します。したがって、彼らはオフラインで幸せに働くことができます。

そのユーザーがインターネットへの接続を取り戻したら、ローカルとリモートと同期する前に、ユーザーに資格情報を尋ねます。彼らが元々インターネット接続を持っていた場合、アプリケーションは間違いなく適切な認証のトークンを保存し、疑いなく同期することができます。それ以外の場合は、今すぐパスワードを求めてください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top