【发布时间】:2010-06-29 15:22:18
【问题描述】:
环境是 IIS 7 集成管道,ASP.NET 4.0。我有一个配置为没有匿名身份验证和 Windows 身份验证的 .aspx 页面:
<location path="auth/windows">
<system.webServer>
<security>
<authentication>
<anonymousAuthentication enabled="false" />
<windowsAuthentication enabled="true" />
</authentication>
</security>
</system.webServer>
</location>
当我请求页面时,会发生正常的 Windows auth (NTLM/Negotiate) 质询响应,并最终返回页面。
我有一个处理 PostAuthorize 事件的 HttpModule。正如预期的那样,只有在质询-响应身份验证成功并且对页面的访问权限已被授权时才会引发此事件。
但是,Request.IsAuthenticated 属性为 false;和 HttpContext.Current.User.Identity 反映未经身份验证的用户(.Name 返回空字符串)。有趣的是,Request.ServerVariables["LOGON_USER"] 确实返回了经过身份验证的 Windows 用户的值。
我原以为一旦用户通过身份验证(就此而言,并获得授权),请求将反映已通过身份验证;并且请求的用户/身份已经正确设置。
对为什么不是这种情况有什么想法吗?
谢谢,
唐尼
【问题讨论】:
-
启用模拟,看看你会得到什么。
标签: asp.net authentication iis-7