![](/img/trans.png)
[英]Is there a way to pass a username on the header so that an anonymous IIS website will log it in 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.