2017-04-27 9 views
0

できますいくつかの私のasp.net mvcアプリケーションでフォーム認証を行うための最良の方法を提案できます。私の要件は、ユーザーが5分間アイドル状態の場合、アプリケーションは自動的にログインページにリダイレクトされます。最善のアプローチは何ですか?ASP.NET MVC認証とセッションのタイムアウト

+1

フォーム認証CookieでslidingExpirationを有効にすることができます。 –

答えて

0

次のようにあなたのweb.configファイルを更新します。

<system.web> 

    <authentication mode="Forms"> 
     <forms name="AppName.Auth" loginUrl="~/Account/Login" protection="All" timeout="300" path="/" slidingExpiration="true" /> 
    </authentication> 

</system.web> 

タイムアウト= "300" - > 5分×60秒

[オーソライズ]属性で装飾されたすべてのMVCのアクションはにユーザーをリダイレクトします5分間ログインしていない場合はログインページに移動します。

+0

ありがとうございます。私は同じ方法を与えましたが、ページを更新するとリダイレクトされます。自動的に行っていない – SJoy

+0

ここで非同期httpリクエストを送信しているようです。正解、それはあなたをリダイレクトしません。これは手動で行う必要があります。独自のカスタムAuthorize属性に[AuthorizeUser]などを呼び出し、非同期要求onAthorizationイベントを処理するコードを記述します。それをオンラインで行う方法を検索すれば、簡単に行うことができます。 –

+0

もう1つの方法は、mvcメソッドの代わりにweb apiメソッドを呼び出すことです。 System.Web.Http名前空間を持つWeb APIの[Authorize]属性がそれを行います。それはあなたがクライアントのコールバックにキャッチし、それに応じて行動することができる401未承認の応答ヘッダーを発生させます。 –

関連する問題