2016-06-25 12 views
8

は、いくつかのアクションフィルタを含む:承認アクションフィルタと承認フィルタの違いは何ですか? <a href="http://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/understanding-action-filters-cs" rel="noreferrer">ASP.NET website</a></p> <p>ASP.NET MVCフレームワーク1として

  1. OutputCache - このアクションフィルタは、特定の時間のためのコントローラアクションの出力をキャッシュします。
  2. HandleError - このアクションフィルターは、コントローラーアクションの実行時に発生するエラーを処理します。
  3. 認可 - このアクションフィルタを使用すると、特定のユーザーまたはロールへのアクセスを制限できます。

また、「認可フィルタ」と呼ばれるMVCにはフィルタのタイプがあります。

[Authorize]属性がActionフィルタかAuthorizationフィルタかは混乱しますか?それはいつ実行されますか?

答えて

5

承認アクションフィルタと承認フィルタの違いは何ですか?

なし。

このドキュメントは明らかに間違っています(目次に注釈がある場合は、バージョン1と2のMVC用ですので、古くなっています)。

AuthorizeAttributeIAuthorizationFilterを継承しているため、実際はアクションフィルタではなく承認フィルタです。 MVCに承認アクションフィルタはありません。

MVC 3からMVC 5の場合は、今後最新のFiltering in ASP.NET MVCドキュメントを参照してください。

いつ実行されますか?

MSDNを1として:

  1. 認証フィルタ
  2. アクションフィルタ
  3. 応答フィルタ
  4. 例外フィルタ
  5. フィルタは次の順序で実行します10

+0

ありがとう!!それが私の疑問を解決した – TBAG

2

私は、[承認]属性は、アクションフィルタまたは 認証フィルタであるかどうか混乱していますか?

[Authorize]属性は、ソースコードを見るとわかるように、認可フィルタです。詳細を見ると、IAuthorizationFilterインターフェイスが実装されており、ドキュメントに従ってAuthorizationフィルタとして分類されます。それが実行され

namespace System.Web.Mvc 
{ 
    // 
    // Summary: 
    //  Specifies that access to a controller or action method is restricted to users 
    //  who meet the authorization requirement. 
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)] 
    public class AuthorizeAttribute : FilterAttribute, IAuthorizationFilter 
......... 

ドキュメントあたりとおり

フィルタが上記の順序で実行されています。たとえば、 承認フィルタは、アクションフィルタおよび の前に常に実行され、他のすべてのタイプの フィルタの後には常に実行されます。

AuthorizeAttributeクラスとRequireHttpsAttributeクラス:それは明らかに[承認]属性は、認証フィルタであることを述べてhttps://msdn.microsoft.com/en-us/library/gg416513(VS.98).aspx

は、MVCでのフィルタリングのための現在のドキュメントを見てください承認フィルターの例は です。承認フィルタは、 より前に実行されます。

+0

私はソースコードを見てきました。 ASP.NETのWebサイトhttp://www.asp.net/mvc/overview/older-versions-1/controllers-and-routing/understanding-action-filters-csによると、ASP.NET MVCフレームワークには、アクションフィルタ: - 承認 - このアクションフィルタを使用すると、特定のユーザーまたはロールへのアクセスを制限できます。 – TBAG

+0

このドキュメントは古くなっています。ここをクリックしてください:https://msdn.microsoft.com/en-us/library/gg416513(VS.98).aspx - Authorize属性がAuthorizationフィルターであることが明確に記載されています。 – HaukurHaf

+1

はい..ありがとうございます。それは私の疑いを明らかにした – TBAG

関連する問題