Sat*_*tti 2 c# asp.net .net-core asp.net-core
现在我正在将 .Net MVC 应用程序转换为 .Net Core App
要记录我们在 MVC 中使用“HttpContext”的事件
LoggerException loggerException = new LoggerException();
loggerException.ApplicationName = "Service";
loggerException.Level = logLevel;
loggerException.Timestamp = DateTime.UtcNow.ToString();
loggerException.UserController = HttpContext.Current.Request.Url.Segments[2];
loggerException.Action = HttpContext.Current.Request.Url.Segments[3];
loggerException.IpAddress = HttpContext.Current.Request.UserHostAddress;
Run Code Online (Sandbox Code Playgroud)
在 .Net Core 中,“IHttpContextAccessor”是“HttpContext”的替代品。我无法获得用户控制器和操作
我当前的 .net 核心代码
LoggerException loggerException = new LoggerException();
loggerException.ApplicationName = appName;
loggerException.Level = logLevel;
loggerException.Timestamp = DateTime.UtcNow;
//loggerException.UserController = httpContextAccessor.HttpContext != null ? httpContextAccessor.HttpContext.User.ToString() : string.Empty;
//loggerException.Action = httpContextAccessor.HttpContext != null ? httpContextAccessor.HttpContext. : string.Empty;
loggerException.IpAddress = httpContextAccessor.HttpContext != null ? httpContextAccessor.HttpContext.Connection.RemoteIpAddress.ToString() : string.Empty;
Run Code Online (Sandbox Code Playgroud)
在IActionContextAccessor.ActionContext属性中获取当前请求的RouteData,然后获取控制器和操作名称,如下所示。
var rd = actionContextAccessor.ActionContext.RouteData;
string currentController = rd.Values["controller"].ToString();
string currentAction = rd.Values["action"].ToString();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6884 次 |
| 最近记录: |