Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ASP.NET Web API跟踪内部应用程序(日志记录)_C#_Asp.net_Asp.net Mvc_Asp.net Web Api - Fatal编程技术网

C# 使用ASP.NET Web API跟踪内部应用程序(日志记录)

C# 使用ASP.NET Web API跟踪内部应用程序(日志记录),c#,asp.net,asp.net-mvc,asp.net-web-api,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,我目前有很多Web API,它们被各种应用程序使用。所有API都使用ASP.NET Web API 2和4.6.NET framework。我希望能够跟踪使用特定API的所有不同应用程序 例如: 假设我有以下API: 员工API-获取所有员工 我有以下调用Employees API的应用程序 员工管理系统-位于/intranet/Employee/add 请假申请表-位于/intranet/timeoff.aspx 员工管理系统使用C#代码中的HttpClient调用员工API 请假请求

我目前有很多Web API,它们被各种应用程序使用。所有API都使用ASP.NET Web API 2和4.6.NET framework。我希望能够跟踪使用特定API的所有不同应用程序

例如:

假设我有以下API:

  • 员工API-获取所有员工
我有以下调用Employees API的应用程序

  • 员工管理系统-位于
    /intranet/Employee/add
  • 请假申请表-位于
    /intranet/timeoff.aspx
员工管理系统使用C#代码中的HttpClient调用员工API

请假请求表单使用JavaScript中的ajax调用调用Employees API


我想记录所有使用Web API的应用程序,最好记录它们调用的操作。实现这一目标的最佳方式是什么

有没有办法获取呼叫者的URI


从Web API可以知道,
/intranet/timeoff.aspx
正在调用员工API上的添加员工操作

我相信您有一些选择

  • 添加一个标头值,以在应用程序的每个请求中标识应用程序

  • 将标识应用程序的声明添加到安全令牌 (假设您正在保护请求)

  • 为每个请求添加请求应用程序的查询参数


  • 我相信你有几个选择

  • 添加一个标头值,以在应用程序的每个请求中标识应用程序

  • 将标识应用程序的声明添加到安全令牌 (假设您正在保护请求)

  • 为每个请求添加请求应用程序的查询参数


  • 如果您可以控制调用API的应用程序,那么 提供了一些很好的建议。如果没有,那么您可能需要考虑一些引用信息,如IP地址。但是,即使这样,该值也可能不是客户端IP,而是介于客户端IP和API之间的某个值


    不过,由于您使用的是Web API,您可能会考虑通过第一次运行所有请求,将调用方信息写入到日志中,然后让请求继续到适当的控制器。请参见

    如果您可以控制调用API的应用程序,则 提供了一些很好的建议。如果没有,那么您可能需要考虑一些引用信息,如IP地址。但是,即使这样,该值也可能不是客户端IP,而是介于客户端IP和API之间的某个值


    不过,由于您使用的是Web API,您可能会考虑通过第一次运行所有请求,将调用方信息写入到日志中,然后让请求继续到适当的控制器。请看

    我想您正在寻找类似的产品,您有任何类型或授权吗?类似于在标头中发送令牌,或者api完全打开吗?@Fran它是完全打开的。有些api确实有授权,但大多数都没有。我想你正在寻找类似这样的api。你有任何类型或授权吗?类似于在标头中发送令牌,或者api完全打开吗?@Fran它是完全打开的。有些API确实具有授权,但大多数都没有。