ActionFilterAttributeはどのようにして保護されたintにアクセスできますか?BaseControllerから?

スティアン

私は、intを取得HttpContext.Sessionしてすべての継承コントローラーで使用できるようにすることを唯一の目的とするベースコントローラーを持っています。

上記の値が設定されておらず、ユーザーがログインせずに制限されたビューにアクセスしようとしたときに、ログインビューにリダイレクトしようとしています。

これは私がこれまでに得たものです:

public class BaseController : Controller
{
    protected int? BranchId
    {
        get { return (HttpContext.Session.GetInt32("BranchId") as int?); }
        set {}
    }

    public BaseController() {}
}

public class RedirectingActionAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        base.OnActionExecuting(filterContext);

        if (BranchId < 1) // BUT BranchId DOES NOT EXIST IN THIS CONTEXT
        {
            filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
            {
                controller = "Home",
                action = "Login"
            }));
        }
    }
}

public class EmployeesController : BaseController
{
    private readonly VaktlisteContext db;
    private readonly IMapper auto;

    public EmployeesController(VaktlisteContext context, IMapper mapper)
    {
        db = context;
        auto = mapper;
    }

    [RedirectingAction]
    public async Task<IActionResult> Index()
    {
        Branch branch = await db.Branches.Include(e => e.Employees)
            .Where(b => b.Id == BranchId).FirstOrDefaultAsync();
        if (branch == null) return NotFound();
        BranchViewModel vm = auto.Map<BranchViewModel>(branch);
        return View(vm);
    }
}

私はこの質問と回答を読みましたが、私の場合、解決策をどのように適用できるかを理解できませんでした。

助言がありますか?

アリ・マーダン

クラスのメンバーであるためBranchIdRedirectingActionAttributeクラスの属性に直接アクセスすることはできませんBaseControllerこのコードを試してください:

public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    base.OnActionExecuting(filterContext);

    if ((filterContext.Controller as BaseController).BranchId < 1) 
    {
        filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
        {
            controller = "Home",
            action = "Login"
        }));
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

従来のロックはJavaの並列アクセスからどのように保護しますか?

分類Dev

仮想ネットワークを使用して、AppServiceからAzureSql Databaseへのアクセスを保護するにはどうすればよいですか?

分類Dev

nautilusからパスワードで保護された共有にアクセスするにはどうすればよいですか?

分類Dev

Javascriptを他の人からアクセスされないように保護するにはどうすればよいですか?

分類Dev

gVisorはホストを汚れた牛のPoCからどのように保護できますか?

分類Dev

Java子クラスはアクセス保護された親フィールドをどのように継承しますか?

分類Dev

ブラウザはWebAssemblyでコンパイルされたコードからプロセスメモリをどのように保護しますか?

分類Dev

Windows 7で誤って保護しすぎたフォルダーへのアクセスを許可するにはどうすればよいですか?

分類Dev

java.lang.Objectの保護されたメソッドはサブクラスからどのように保護されますか?

分類Dev

リアルモードで値を保存し、保護された状態でアクセスするにはどうすればよいですか?

分類Dev

Word文書の保護されたビューは、コンピューターをウイルスからどのように保護しますか?

分類Dev

iOS:iMazingからアプリを開いたときに、特定のフォルダーをMacで非表示にして読み取りから保護し、コピーから保護するにはどうすればよいですか?

分類Dev

なりすましアクセスポイントから保護するにはどうすればよいですか?

分類Dev

サードパーティライブラリの保護されたJavaメソッドにどのようにアクセスしますか?

分類Dev

保護されたメンバーを第1レベルの子C#からのみアクセスできるように制限する方法

分類Dev

別のクラスの起動である基本クラスから派生クラスの保護されたメンバーにアクセスするにはどうすればよいですか?

分類Dev

BlazorWasmアプリからアクセスされるAzureFunctionをAzureAD B2Cで保護するにはどうすればよいですか?

分類Dev

ユーザーがブラウザのURLを介して直接保護されたルートにアクセスする場合、コンポーネントにリダイレクトするにはどうすればよいですか?

分類Dev

テストで保護されたメソッドにアクセスできるのはなぜですか?

分類Dev

Xamarinで構築されたiOSアプリのスタックスマッシング保護をどのように有効にしますか?

分類Dev

Web3を使用してアクセス権で保護されたスマートコントラクト機能にアクセスするにはどうすればよいですか?

分類Dev

ApplicationRunnerで保護されたSpring Data RESTリポジトリに適切にアクセスするにはどうすればよいですか?

分類Dev

IdentityServer4からのトークンを使用して保護された.netAPIにアクセスする

分類Dev

Selenium(またはBeautifulSoup)を使用してこれらの隠された要素にアクセスするにはどうすればよいですか?

分類Dev

保護された/プライベートの継承を使用して、派生インスタンスの基本クラスの保護されたメンバーにアクセスできないのはなぜですか?

分類Dev

製品データへの匿名アクセスのためにファイアストアを保護するにはどうすればよいですか

分類Dev

ObservableCollection <T>はINotifyPropertyChangedを保護されたものとしてどのように実装しますか?

分類Dev

Rubyで、保護されたメソッドへのアクセスを別の指定されたクラスに与えることはできますか?

分類Dev

ActionFilterAttributeからAppSettingsにアクセスするにはどうすればよいですか

Related 関連記事

  1. 1

    従来のロックはJavaの並列アクセスからどのように保護しますか?

  2. 2

    仮想ネットワークを使用して、AppServiceからAzureSql Databaseへのアクセスを保護するにはどうすればよいですか?

  3. 3

    nautilusからパスワードで保護された共有にアクセスするにはどうすればよいですか?

  4. 4

    Javascriptを他の人からアクセスされないように保護するにはどうすればよいですか?

  5. 5

    gVisorはホストを汚れた牛のPoCからどのように保護できますか?

  6. 6

    Java子クラスはアクセス保護された親フィールドをどのように継承しますか?

  7. 7

    ブラウザはWebAssemblyでコンパイルされたコードからプロセスメモリをどのように保護しますか?

  8. 8

    Windows 7で誤って保護しすぎたフォルダーへのアクセスを許可するにはどうすればよいですか?

  9. 9

    java.lang.Objectの保護されたメソッドはサブクラスからどのように保護されますか?

  10. 10

    リアルモードで値を保存し、保護された状態でアクセスするにはどうすればよいですか?

  11. 11

    Word文書の保護されたビューは、コンピューターをウイルスからどのように保護しますか?

  12. 12

    iOS:iMazingからアプリを開いたときに、特定のフォルダーをMacで非表示にして読み取りから保護し、コピーから保護するにはどうすればよいですか?

  13. 13

    なりすましアクセスポイントから保護するにはどうすればよいですか?

  14. 14

    サードパーティライブラリの保護されたJavaメソッドにどのようにアクセスしますか?

  15. 15

    保護されたメンバーを第1レベルの子C#からのみアクセスできるように制限する方法

  16. 16

    別のクラスの起動である基本クラスから派生クラスの保護されたメンバーにアクセスするにはどうすればよいですか?

  17. 17

    BlazorWasmアプリからアクセスされるAzureFunctionをAzureAD B2Cで保護するにはどうすればよいですか?

  18. 18

    ユーザーがブラウザのURLを介して直接保護されたルートにアクセスする場合、コンポーネントにリダイレクトするにはどうすればよいですか?

  19. 19

    テストで保護されたメソッドにアクセスできるのはなぜですか?

  20. 20

    Xamarinで構築されたiOSアプリのスタックスマッシング保護をどのように有効にしますか?

  21. 21

    Web3を使用してアクセス権で保護されたスマートコントラクト機能にアクセスするにはどうすればよいですか?

  22. 22

    ApplicationRunnerで保護されたSpring Data RESTリポジトリに適切にアクセスするにはどうすればよいですか?

  23. 23

    IdentityServer4からのトークンを使用して保護された.netAPIにアクセスする

  24. 24

    Selenium(またはBeautifulSoup)を使用してこれらの隠された要素にアクセスするにはどうすればよいですか?

  25. 25

    保護された/プライベートの継承を使用して、派生インスタンスの基本クラスの保護されたメンバーにアクセスできないのはなぜですか?

  26. 26

    製品データへの匿名アクセスのためにファイアストアを保護するにはどうすればよいですか

  27. 27

    ObservableCollection <T>はINotifyPropertyChangedを保護されたものとしてどのように実装しますか?

  28. 28

    Rubyで、保護されたメソッドへのアクセスを別の指定されたクラスに与えることはできますか?

  29. 29

    ActionFilterAttributeからAppSettingsにアクセスするにはどうすればよいですか

ホットタグ

アーカイブ