当前位置:  开发笔记 > 编程语言 > 正文

是(HttpContext.Current.User!= null)足以假设FormsAuthentication已对用户进行了身份验证

如何解决《是(HttpContext.Current.User!=null)足以假设FormsAuthentication已对用户进行了身份验证》经验,为你挑选了1个好方法。

在ASP.NET(2.0)应用程序中,我使用FormsAuthentication.

在Global.asax/Application_AuthenticateRequest方法中,我检查HttpContext.Current.User是否为null.

这是否足以知道表单身份验证cookie是否存在,故障单是否已过期,总体而言,表单身份验证机制是否已完成其工作以验证用户?

我需要这个,因为我在该应用程序中有某些页面,有时不需要访问身份验证(基于某些标准),我将它们放在web.config中的单独"location"指令中,以便将它们排除在外来自"catch all"表单身份验证.

即我正在尝试检查Application_AuthenticateRequest,如果在此"位置"访问的页面需要保护,如果是,则知道用户是否已经过身份验证,或者我需要重定向到登录.

编辑:正如答案所示,我很可能会选择IsAuthenticated.为了让我更好地掌握它,这里有2个奖金问题:)(请编辑其他答案添加这些,谢谢):

    我可以假设,如果IsAuthenticated为true,那么HttpContext.Current.User肯定会包含经过身份验证的用户的用户名吗?

    如果强制执行FormsAuthentication,我怎样才能在HttpContext.Current.User中找到"匿名用户",并且只有少数几个页面被"location"指令排除?

bdukes.. 29

不,这User可能只是对匿名用户的引用.检查HttpContext.Current.Request.IsAuthenticated.



1> bdukes..:

不,这User可能只是对匿名用户的引用.检查HttpContext.Current.Request.IsAuthenticated.


如果网站允许匿名访问(意味着甚至不使用基本身份验证),则该用户被视为匿名访问.当某人以这种方式到达时,IIS通常会分配"用户",但它会设置为IUSR_MachineName或其他内容.
推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有