【发布时间】:2009-06-19 13:33:15
【问题描述】:
我有一个使用 ASP.NET 表单身份验证的 ASP.NET 3.5 应用程序(在 IIS 6.0 上)。在我的 IIS 日志中,我打开了扩展日志记录,包括 cs-username 字段。即使在用户登录到我的站点后,cs-username 仍然显示“-”。
有没有办法让经过身份验证的 ASP.NET 用户名出现在日志的用户名字段中?
【问题讨论】:
标签: asp.net iis authentication logging
我有一个使用 ASP.NET 表单身份验证的 ASP.NET 3.5 应用程序(在 IIS 6.0 上)。在我的 IIS 日志中,我打开了扩展日志记录,包括 cs-username 字段。即使在用户登录到我的站点后,cs-username 仍然显示“-”。
有没有办法让经过身份验证的 ASP.NET 用户名出现在日志的用户名字段中?
【问题讨论】:
标签: asp.net iis authentication logging
不容易。
cs-username 默认是 HTTP 认证用户名,不是表单认证。您也许可以编写一个 ISAPI DLL 来拦截调用,解析 ASP.NET 身份验证令牌 cookie,如果必须解密它并从成员资格提供程序检索用户名,然后拦截 SF_NOTIFY_LOG 并响应 ON_LOG 事件以设置正确的名称,但这并不重要。
【讨论】:
或者,使用 ASP.NET 成员资格提供程序编写一些自定义代码以将它们记录在数据库中!
【讨论】:
是的,asp.net 很蹩脚……你会认为他们会更好地与 IIS 日志集成:-P
您可以使用这个 isapi 过滤器,但我不确定它是否适用于 IIS7 (Windows 2008)。在 Win2003 中应该可以正常工作: http://www.codeproject.com/KB/trace/isapilogger.aspx
【讨论】: