簡體   English   中英

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

[英]cs-username not showing in IIS logs in IIS7 classic mode

我在經典模式下運行IIS 7上的表單身份驗證的asp.net應用程序。 已啟用日志記錄,並且當前已選擇記錄cs-username字段。 但是,日志中的cs-username始終為空。 任何人都有關於如何確定原因的提示?

cs-username對ASP.NET / Forms身份驗證一無所知,反之亦然......你在IIS中啟用了匿名訪問,是嗎? 這就是沒有cs-username輸出的原因。

布萊恩說的是真的。 在經典模式下,您將經歷雙重身份驗證過程。 也就是說,IIS首先對您進行身份驗證,然后ASP.NET會對您進行身份驗證。 在經典模式下,IIS身份驗證可能設置為匿名,在這種情況下,IIS將在該字段中不記錄任何內容。 如果打開集成管道,則身份驗證只會發生一次 - 並且在IIS管道中。 這意味着IIS可以將數據寫入cs-username字段。

我認為您必須將asp.net LOGGIN保存在HEADER變量中並使用na ISAPI過濾器來獲取此信息並保存在IIS_LOG上。

您可以執行以下操作,它將在IIS日志中設置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);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM