사용자 활동 기록 및 오류 찾기를 위해 작업 필터를 통해 세부 정보를 캡처해야하는 로거를 구현 중입니다.조치 필터에 모든 쿼리 매개 변수를 기록하려면 어떻게해야합니까?
public interface ISessionLogger
{
void LogUserActionSummary(int sessionId, string userActionType);
void LogUserActionDetail(int session, string userActionType, DateTime userActionStartedUtc, long actionDurationInMilliseconds, string queryParams, string referredFrom);
}
내가
filterContext.Controller.ValueProvider
queryParams
싶습니다
하지만이 과정을 반복 할 수는 없습니다. 그럼 내가 가진 내 FilterAttribute에서
public void OnActionExecuting(ActionExecutingContext filterContext)
{
var paramList = new List<string>();
if(filterContext.ActionParameters != null)
{
paramList.AddRange(filterContext.ActionParameters.Select(param => String.Format("{0}:{1}", param.Key, param.Value.ToString())));
}
if(filterContext.Controller.ValueProvider != null)
{
//loop through the valueprovider and save the key value pairs to paramList
}
_queryParams = string.Join(",", paramList);
}
액션 필터의 OnActionExecuting 메서드 내에서 이것을 구현하는 또 다른 방법이 있습니까?
당신이 ValueProvider에 대한 자세한 내용은 MSDN을 확인 했 : 모든
? - http://msdn.microsoft.com/en-us/library/system.web.mvc.ivalueprovider(v=vs.108).aspx – KyorCodefilterContext.HttpContext.Request.Params
값뿐만 아니라filterContext.RouteData
값을 로그인을 시도 수있는 대안으로예, 열거 할 수 없습니다. – friedX