首页 / 知识
关于c#:Context.User在Global.asax.Application_AuthenticateRequest中分配后失去角色
2023-04-14 23:06:00

Context.User losing Roles after being assigned in Global.asax.Application_AuthenticateRequest我在asp.net(3.5)应用程序中使用窗体身份验证。我还使用角色来定义哪些用户可以访问应用程序的哪些子目录。因此,我的web.config文件的相关部分如下所示:
根据我所阅读的内容,这应该确保唯一能够访问Admin目录的用户是经过身份验证并分配了Admin角色的用户。 用户身份验证,保存身份验证票以及其他相关问题都可以正常工作。如果我从web.config文件中删除标签,则一切正常。当我尝试强制只有具有Admin角色的用户才能访问Admin目录时,就会出现问题。 根据此MS KB文章以及其他提供相同信息的网页,我将以下代码添加到了Global.asax文件中:
但是,当我尝试登录时,无法访问Admin文件夹(重定向到登录页面)。 尝试调试问题,如果我单步执行请求,并且在上面标记为Debug#1的行中执行Context.User.IsInRole(" Admin"),它将返回false。如果我在Debug#2行执行同一条语句,则它等于true。因此,至少就Global.asax而言,已正确分配了Role。 在Global.asax之后,执行会直接跳到"登录"页面(因为缺少角色会导致admin文件夹中的页面加载被拒绝)。但是,当我在登录页面的第一行上执行相同的语句时,它返回false。因此,在Global.asax中的Application_AuthenticateRequest和受限目录中的WebForm的初始加载之后的某个位置,角色信息丢失,导致身份验证失败(注意:在Page_Load中,正确的身份验证票证仍分配给Context.User.Id -只有角色正在丢失)。 我在做什么错,如何使它正常工作? 更新:我在下面输入了解决方案 这里是问题和解决方案: 在开发的早期,我转到"网站"菜单,然后单击" Asp.net配置"。 这导致将以下行添加到web.config中:
从那时起,该应用程序假设我是通过Asp.net站点管理器而不是通过FormsAuthentication角色来担任角色的。 因此,尽管正确设置了实际的身份验证和角色逻辑,但重复失败。 从web.config中删除此行后,一切运行正常。 这只是一个随机镜头,但是您是否由于Admin授权的顺序而被阻止? 也许您应该尝试切换全部拒绝和全部管理员权限。 以防万一它被否认所覆盖。 (我在这里有代码示例,但没有出现。 |
最新内容
相关内容
linux空间分配命令?
linux空间分配命令?,系统,数据,情况,分区,图片,地址,位置,软件,管理,信息,linux怎么分配系统空间1、系统分区 系统分区是指存放操作系统和启动分配磁盘命令linux?
分配磁盘命令linux?,管理,号码,系统,信息,磁盘,配额,命令,技术,单位,工作,linux磁盘分区的详细步骤1、对于每一个硬盘(IDE 或 SCSI)设备,Linuxlinux命令和应用程序?
linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,在linux下如何装应用程序?需要什么命令啊首先从官网下载hdf5,根据linux命令分配文件?
linux命令分配文件?,管理,系统,命令,文件,基础,工具,标准,名称,情况,分区,linux目录命令,文件命令,权限设置命令1、CHMOD:文件/目录权限设置命Python内存分配
Python内存分配,代码,对象,变量,情况,培训,技术,名字,赋值,声明,别名,一、前言大多数编译型语言,变量在使用前必须先声明,其中C语言更加苛刻:变Python可以做桌面应用程序吗
Python可以做桌面应用程序吗,平台,系统,较大,标准,培训,界面,桌面,文档,入门,开发者,python可以做桌面应用程序!目前比较主流的几个GUI平台:1关于数据库:有人将Lisp用于MySQL支
关于数据库:有人将Lisp用于MySQL支持的Web应用程序吗?,关于数据库:有人将Lisp用于MySQL支持的Web应用程序吗?,语言,有用,东西,让我,Anyon关于asp.net:.NET Web应用程序到Si
关于asp.net:.NET Web应用程序到SilverLight的可移植性,关于asp.net:.NET Web应用程序到SilverLight的可移植性,应用程序,核心,业务如何将文本从Emacs复制到Linux上的
如何将文本从Emacs复制到Linux上的另一个应用程序,如何将文本从Emacs复制到Linux上的另一个应用程序,文本,自己的,我在,剪切,How to关于sql server:有什么可能是部署AS
关于sql server:有什么可能是部署ASP.Net Web应用程序的好方法?,关于sql server:有什么可能是部署ASP.Net Web应用程序的好方法?,运行,如何(以及是否)使用初始数据填充Ra
如何(以及是否)使用初始数据填充Rails应用程序,如何(以及是否)使用初始数据填充Rails应用程序,应用程序,用户,登录,系统,How (and wh关于sql server:使用浮点数还是小数
关于sql server:使用浮点数还是小数来表示会计应用程序的美元金额?,关于sql server:使用浮点数还是小数来表示会计应用程序的美元金额