[ApiBasicAuthorize]
public ActionResult SignIn()
{
}
私はこのカスタムフィルタをApiBasicAuthorizeといいます。コントローラアクションSignInの内部でApiBasicAuthorizeのデータ(プロパティなど)にアクセスすることは可能ですか?コントローラアクションでアクションフィルタのデータにアクセスする
もしそうでない場合は、フィルタからコントローラアクションにデータを渡すにはどうすればよいですか?
[ApiBasicAuthorize]
public ActionResult SignIn()
{
}
私はこのカスタムフィルタをApiBasicAuthorizeといいます。コントローラアクションSignInの内部でApiBasicAuthorizeのデータ(プロパティなど)にアクセスすることは可能ですか?コントローラアクションでアクションフィルタのデータにアクセスする
もしそうでない場合は、フィルタからコントローラアクションにデータを渡すにはどうすればよいですか?
HttpContextオブジェクトに添付された項目という辞書があります。このディクショナリを使用して、リクエスト中にコンポーネント間で共有されるアイテムを格納します。そして、どこでも、あなたのコードの後のリクエストで
public override void OnAuthorization(AuthorizationContext filterContext)
{
filterContext.HttpContext.Items["key"] = "Save it for later";
base.OnAuthorization(filterContext);
}
...あなたはauthrize_Attributeでオーバーライドされている方法
var value = HttpContext.Current.Items["key"];
Praveenの答えでさえ、私はこれを答えとしてマークしました。なぜなら、HttpContext.ItemsはRouteData.Valuesの代わりにこの目的に適しているからです。 –
@Goths - こんにちは、あなたは 'RouteDataを介して' HttpContext.Items'を選んだ理由を教えてください。 '?また、参照してください:http://stackoverflow.com/a/1809541/538387ありがとう – Tohid
こんにちは@ goths、はい私はまた、前者が後者よりも "適切"である理由も不思議ですか?彼らはどちらも同じ目的を果たしているようですので、どのような制限や意図が両者を分けるのだろうか? – Funka
public override void OnAuthorization(AuthorizationContext filterContext)
{
var rd = filterContext.RouteData;
//add data to route
rd.Values["key"]="Hello";
base.OnAuthorization(filterContext);
}
public ActionResult(string key)
{
//key= Hello
return View();
}
。あなたは、ルート辞書にデータを追加することができます、私たちにあなたのコードをいくつか示してください。 –
私はOnAuthorization(AuthorizationContext filterContext)メソッドをオーバーライドしています。 –