在IIS7经典模式下的IIS日志中不显示cs-username

时间:2009-11-04 16:58:22

标签: asp.net iis-7

我在经典模式下在IIS 7上运行带有表单身份验证的asp.net应用程序。已启用日志记录,并且当前已选择记录cs-username字段。但是,日志中的cs-username始终为空。任何人都有关于如何确定原因的提示?

4 个答案:

答案 0 :(得分:5)

cs-username对ASP.NET / Forms身份验证一无所知,反之亦然......你在IIS中启用了匿名访问,是吗?这就是没有cs-username输出的原因。

答案 1 :(得分:1)

布莱恩说的是真的。在经典模式下,您将经历双重身份验证过程。也就是说,IIS首先对您进行身份验证,然后ASP.NET会对您进行身份验证。在经典模式下,IIS身份验证可能设置为匿名,在这种情况下,IIS将在该字段中不记录任何内容。如果打开集成管道,则身份验证只会发生一次 - 并且在IIS管道中。这意味着IIS可以将数据写入cs-username字段。

答案 2 :(得分:0)

我认为您必须将asp.net LOGGIN保存在HEADER变量中并使用na ISAPI过滤器来获取此信息并保存在IIS_LOG上。

答案 3 :(得分:0)

您可以执行以下操作,它将在IIS logs cs-username中设置。

public WebApiApplication()
{
    this.AuthenticateRequest += WebApiApplication_AuthenticateRequest;
}

void WebApiApplication_AuthenticateRequest(object sender, EventArgs e)
{
    HttpContext.Current.User = new GenericPrincipal(new GenericIdentity("SET THE USER INFO HERE"), null);
}