加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Windows身份验证成功但IsAuthenticated == false

发布时间:2020-12-16 09:58:11 所属栏目:asp.Net 来源:网络整理
导读:环境是IIS 7集成管道,ASP.NET 4.0.我有一个.aspx页面配置没有匿名身份验证和 Windows身份验证: location path="auth/windows" system.webServer security authentication anonymousAuthentication enabled="false" / windowsAuthentication enabled="true"
环境是IIS 7集成管道,ASP.NET 4.0.我有一个.aspx页面配置没有匿名身份验证和 Windows身份验证:

<location path="auth/windows">
    <system.webServer>
      <security>
        <authentication>
          <anonymousAuthentication enabled="false" />
          <windowsAuthentication enabled="true" />
        </authentication>
      </security>
    </system.webServer>
  </location>

当我请求页面时,会发生正常的Windows身份验证(NTLM / Negotiate)质询响应,最终返回页面.

我有一个HttpModule,我在其中处理PostAuthorize事件.正如所料,只有在质询 – 响应身份验证成功并且已授权访问页面后,才会引发此事件.

但是,Request.IsAuthenticated属性为false;和HttpContext.Current.User.Identity反映未经身份验证的用户(.Name返回空字符串).有趣的是,Request.ServerVariables [“LOGON_USER”]确实返回经过身份验证的Windows用户的值.

我曾经想过,一旦用户通过身份验证(并获得授权),请求就会反映出身份验证;并且已正确设置请求的用户/标识.

对于为什么不是这种情况的任何想法?

谢谢,

甄子丹

解决方法

Windows身份验证在IIS中启用,身份验证模式设置为我的web.config文件中的窗口.

<authentication mode="Windows">     
    </authentication>

我的网站要求凭据,它工作正常.但检查时使用

HttpContext.User.Identity.Name

是空字符串
要么
HttpContext.User.Identity.IsAuthenticated为false;

我使用了Request.ServerVariables [“LOGON_USER”].Tostring();登录用户凭据.

它对我有用,感谢发布足球.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读