【发布时间】:2020-06-02 23:58:13
【问题描述】:
对于我们的系统,我们有各种通过 .NET MVC 在内部处理的 Web API 调用。这些是通过令牌标头使用 AuthorizeAttribute 授权的通用 Web 调用,这意味着我们的 IIS 日志显示匿名用户。如果可能,我们希望填充该用户名。我认为使用 IAuthenticationFilter 并更新 Principal 可以解决问题,但是生成的 IIS 日志的用户名是空白的(匿名)。示例代码如下:
public class UserAuthenticateAttribute : Attribute, IAuthenticationFilter
{
public async Task AuthenticateAsync(HttpAuthenticationContext context, CancellationToken cancellationToken)
{
//Uses data from within context.ActionContext to populate user data
context.Principal = new GenericPrincipal(new GenericIdentity("Test User"), null);
}
public Task ChallengeAsync(HttpAuthenticationChallengeContext context, CancellationToken cancellationToken)
{
return Task.FromResult(0);
}
public virtual bool AllowMultiple { get { return false; } }
}
我猜测 IIS 日志是在发送请求时生成的,在 AuthenticateAsync 获取之前。有没有办法被 IIS 日志记录下来?
【问题讨论】:
标签: c# asp.net asp.net-mvc iis iis-7