我正在开发一个 ASP.Net 2.0 应用程序,并且遇到了一个涉及 HttpContext 用户的奇怪问题。当我转到特定页面/目录时,它似乎会自行改变。
我们所有的页面都继承自一个基本页面。在该基本页面的 Page_Load() 方法中,我们运行授权检查以查看用户是否可以看到他们要去的页面。
我们检索用户以使用以下代码进行检查:
GenericPrincipal objPrincipal = (GenericPrincipal)Context.User;
当我进入这个不寻常的目录时,用户值不是我,而是我从未听说过的其他用户名。此用户名无权查看这些页面,因此授权失败。
这个神秘的目录不是虚拟网络,只是我们网站中的一个常规目录,但是我注意到它有自己的 Web.Config 文件。我猜这是造成这里麻烦的原因。
我的问题是,我如何进一步调查这一点,以确定当我转到此目录时用户值发生了什么变化?
[编辑] -- 当我删除或重命名此目录中的 web.config 文件时,用户值不再更改。但是,正如下面评论中提到的那样,它没有任何价值,所以我不确定 Principal.User 值如何仅根据文件的存在而改变?一定是我当然想念的东西。