[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 대신이 목적에 더 적합하기 때문에 이것을 답변으로 표시했습니다. –
@ 고스 - 안녕하세요, 왜 RouteData를 통해 HttpContext.Items를 선택했는지 설명해주십시오. '? 또한 참조하십시오 : http://stackoverflow.com/a/1809541/538387 감사합니다 – Tohid
안녕하세요, 고맙습니다, 그렇습니다 나는 왜 후자보다 더 "적절한"이유는 궁금 하군요? 두 사람이 같은 목적을 위해 봉사하고있는 것처럼 보이므로 어떤 제한이나 의도로 두 사람이 분리되어 있는지 궁금합니다. – 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) 메서드를 재정의했습니다. –