1- から継承し[AuthorizeAttribute]
、目的の Unauthorized ページにルーティングするように実装をカスタマイズできます。
選択した awnser は次の質問です:
ASP.NET MVC で無許可のコントローラーをリダイレクトする
2- ajax 呼び出し (つまり、$.Get(url)
または$("#somediv").Load(url)
) からパーシャルをロードしている場合は、によって呼び出されるアクションurl
がカスタム で適切に装飾されていることを確認してください[AuthorizeAttribute]
。
それ以外の場合は、ユーザーが認証されているかどうかを確認するために、剃刀ビューにいくつかのロジックが必要になります。の線に沿った何か
@if (User.Identity.IsAuthenticated)
{
// Normal case
}
else
{
@Html.Partial("Login")
}
ログイン部分が目的のログイン ビューを表示する場所。
アップデート
シナリオごとに 1 つずつ、2 つの異なる属性を実装できます。
[AttributeUsage( AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false )]
public class IsUserAdminAttribute : CustomAuthorizedBaseAttribute
{
// Custom logic to redirect to admin logon partial/view
...
}
[AttributeUsage( AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false )]
public class IsAuthenticatedAttribute : CustomAuthorizedBaseAttribute
{
// Custom logic to redirect to basic/comment logon partial/view
...
}
[AttributeUsage( AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false )]
public abstract class CustomAuthorizedBaseAttribute : AuthorizeAttirbute
{
// Shared custom logic implementation
...
}
また、シナリオに応じて、どちらか一方を使用してコントローラー アクションを装飾することもできます。