私はASP.NETの初心者です。認証されていないユーザーをサイトの任意のページからログオンページに簡単にリダイレクトする方法を探しています。別のオプションがある場合は、次のコードをすべてのHTTP GET関数に入れない方がよいでしょう。MVC 3で認証されていないと簡単にリダイレクトする方法は?
if (!Request.IsAuthenticated)
{
return RedirectToAction("LogOn", "Account");
}
私はASP.NETの初心者です。認証されていないユーザーをサイトの任意のページからログオンページに簡単にリダイレクトする方法を探しています。別のオプションがある場合は、次のコードをすべてのHTTP GET関数に入れない方がよいでしょう。MVC 3で認証されていないと簡単にリダイレクトする方法は?
if (!Request.IsAuthenticated)
{
return RedirectToAction("LogOn", "Account");
}
マーク[Authorize]
属性http://msdn.microsoft.com/en-us/library/system.web.mvc.authorizeattribute.aspx
あなたはフォーム認証を持っている必要があり、デフォルトでは、あなたのweb.configファイルを参照してくださいとあなたのコントローラauthentication mode="Forms"
http://msdn.microsoft.com/en-us/library/eeyk640h.aspx
オンまた、この質問ASP.NET MVC Authorization
を見て私は、カスタム認証を使用していますが、<!-- using custom auth with MVC redirect -->
<authentication mode="None">
<forms loginUrl="~/Home/Index"/>
</authentication>
と、それはまだ動作します:場合
カスタム動作を許可しているしたい場合は、私はちょうどこれを試してみましたCustomizing authorization in ASP.NET MVC
[Authorize]
属性は、認証が必要な各処理に設定できます。
また、このセクションはあなたのWeb.Configで定義されていることを確認してください:
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
ここを見て。ただし、タイムアウトについてはわかりません - [Authorize]はForms Authに対してデフォルトのものを使用するか、タイムアウトをまったく管理しません(カスタム認証の場合の推奨動作)。
以下のコードスニペットを使用して、リダイレクト文を記述する必要がない非常にエレガントであることがわかりました。 MVCは、フォーム上のページ構成にログインし、成功したログイン/登録時に、ユーザーが戻って最初のリクエストされたページに送信されます基づいて、リダイレクトの面倒を
if (!User.Identity.IsAuthenticated)
{
//return new HttpUnauthorizedResult(); //This or the below statement should redirect the user to forms login page
return new HttpStatusCodeResult(System.Net.HttpStatusCode.Unauthorized);
}
正確に正しい、とだけ明確にする - このconfigセクションを配置する必要があります"system.web"内にあります。 – tltjr