gpt4 book ai didi

asp.net - .NET Application_BeginRequest-如何获取用户引用?

转载 作者:行者123 更新时间:2023-12-03 14:37:42 24 4
gpt4 key购买 nike

我试图在Global.asax文件的Application_BeginRequest中获得对用户对象的引用。我正在使用属性Context.User,但得到了NullReferenceException。是否可以在Application_BeginRequest中获得用户对象引用?

最佳答案

您没有访问User对象的权限,因为该请求尚未通过身份验证。

尝试改用Application_AuthenticateRequest。

这是所有Global.asax事件的解释:
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5771721.html

以及应用程序生命周期的MSDN演练:
http://msdn.microsoft.com/en-us/library/ms178473.aspx

编辑:
我明白你在做什么。将您的if语句更改为and if not语句(很抱歉,如果语法错误,我不使用VB.NET):

 Sub Application_AuthenticateRequest() 
If Context.User <> Nothing Then
Throw New Exception("User now exists")
End Sub


您会注意到此方法被击中了多次。直到第二次或第三次才会引发该异常。这是因为每个请求都遵循应用程序生命周期。因此,您应该在用户不为空时执行任何操作,而不是在用户为空时执行任何操作。

如果您的目标是动态限制访问,则应创建一个单独的HttpModule并将其分配给您要限制的文件

但是,您需要注意不要重写整个ASP.NET应用程序安全性基础结构。相反,您可以根据角色限制对某些文件夹的访问。

关于asp.net - .NET Application_BeginRequest-如何获取用户引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3072768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com