1

私はasp.net mvc3プロジェクトに取り組んでいます。私はDIのためにオートファックを使用しています。 私は属性を持っては、だから私は、この属性に私の依存関係IUserContextを注入する必要がautofac mvc3プロパティー注入

public class MustBeLoggedInAttribute : ActionFilterAttribute 
{ 
    private IUserContext Context {get;set;} 

    public override void OnActionExecuting(ActionExecutingContext filterContext) 
    { 
     if (!Context.IsLoggedIn) 
      filterContext.Result = new RedirectResult("https://stackoverflow.com/users/logon"); 
     base.OnActionExecuting(filterContext); 
    } 

} 

言います。 どうすればそれを達成できますか?私はここで、actionfiterprovider、 にコードを見つけましたが、何も見つかりませんでした。

お願いします。

よろしく

Parminder

Autofacのwiki上のアレックス・マイヤー-Gleaves'書き込みアップから
+0

'AuthorizeAttribute'はあなたが何をしたい行い、' Autofac'は、属性の作成プロセスのプロパティを注入するための場所がないのに役立ちます。 – Eranga

+0

Eranga - AuthorizeAttributeは基本的な認可には問題ありませんが、何か基本的なものの後に落ちます。 – Phill

+0

あなた達はポイントを得ていません。私はproprty注射について尋ねており、それは他の目的のために使用することができます。ここのコードは単なる例です。 – Parminder

答えて

2

using Autofac.Integration.Mvc; 

var builder = new ContainerBuilder(); 
builder.RegisterFilterProvider(); 

この:あなたはRegisterFilterProvider()拡張メソッドを呼び出す必要がありhttp://code.google.com/p/autofac/wiki/Mvc3Integration#Filter_Attribute_Property_Injection

必要に応じてフィルタ属性にプロパティを挿入します(私が知る限り、属性タイプwiを登録する必要はありませんこれが機能するため番目Autofac。)

希望これは、

ニック

+0

こんにちはニコラス、返事をいただきありがとうございます。この例では、builder.RegisterControllerおよびbuilder.RegisterFilterProviderメソッドを見つけることができません。どこに問題があるのか​​を示唆できますか? – Parminder

+0

素晴らしいNicholas、私はAutofac.Integration.Mvcを使ってインクルードするのを忘れた。ありがとう。 – Parminder

関連する問題