Global.asax 事件:Application_OnPostAuthenticateRequest

2024-01-20

我在用Application_OnPostAuthenticateRequest事件在global.asax to get

a)经过身份验证的用户的角色和权限我还制作了自定义主体类来获取用户详细信息以及角色和权限。

b)获取对该用户而言保持不变的一些信息。

void Application_OnPostAuthenticateRequest(object sender, EventArgs e)
{

    // Get a reference to the current User
    IPrincipal objIPrincipal = HttpContext.Current.User;

    // If we are dealing with an authenticated forms authentication request
    if ((objIPrincipal.Identity.IsAuthenticated) && (objIPrincipal.Identity.AuthenticationType == "Forms"))
    {
        CustomPrincipal objCustomPrincipal = new CustomPrincipal();
        objCustomPrincipal = objCustomPrincipal.GetCustomPrincipalObject(objIPrincipal.Identity.Name);
        HttpContext.Current.User = objCustomPrincipal;
        CustomIdentity ci = (CustomIdentity)objCustomPrincipal.Identity;
        HttpContext.Current.Cache["CountryID"] = FatchMasterInfo.GetCountryID(ci.CultureId);
        HttpContext.Current.Cache["WeatherLocationID"] = FatchMasterInfo.GetWeatherLocationId(ci.UserId);
        Thread.CurrentPrincipal = objCustomPrincipal;
    }
}

我的问题如下:

  1. 每次请求时都会触发此事件。因此,对于每个请求,代码都会执行?
  2. 我的做法对还是不对?
  3. 在此事件中添加 HttpContext.Current.Cache 是否正确,或者我们应该将其移至 Session_Start

  1. 是的,每个请求都会触发此事件
  2. 是的,您可以使用此事件来获取经过身份验证的用户的信息
  3. No, 不要使用 HttpCurrent.Current.Cache存储用户特定信息,因为缓存对所有用户来说都是通用的,并且您会遇到冲突。使用HttpContext.Current.Session相反,因为这将特定于用户。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Global.asax 事件:Application_OnPostAuthenticateRequest 的相关文章

随机推荐

  • 隐藏链接到 .so 文件的第 3 方 .a 文件中的符号

    我正在构建一个共享 so 库 该库由多个 a 文件和调用它们的瘦 API 层组成 我只希望我的 API 和外部依赖项可见 因此我使用 GCC 提供的 隐藏 可见性构建代码 fvisibility hidden 然而 其中一个库是专有的第三方
  • 什么是 mdspan,它的用途是什么?

    在过去的一年左右的时间里 我注意到 StackOverflow 上有一些与 C 相关的答案 请参考mdspan s 但我从未在 C 代码中真正见过这些 我尝试在我的 C 编译器的标准库目录和C 编码指南 http isocpp github
  • 为什么 std::map(以及 STL 中的其他关联容器)上没有 front() 方法?

    The STL参考 http www cplusplus com reference stl 似乎在概念上有所不同 一方面是 序列容器 数组向量双端队列前向列表列表 另一方面 关联容器 设置多重集映射 multimap unordered
  • iOS 中如何保存数据

    我正在制作游戏 当我关闭应用程序 在多任务管理器中关闭 时 我的所有数据都消失了 所以 我的问题很简单 我如何保存数据 假设您要保存分数和级别 它们都是名为 dataHolder 的对象的属性 DataHolder 可以创建为单例 因此您不
  • 将 Crystal Reports 连接到 SQL Server

    所以我进入了 数据库专家 但我似乎不知道如何将数据库添加到报告中 有任何想法吗 附 我正在使用 CR 13 和 SQL Server 2012 我们正在使用 CR 11 R2 我不确定 CR 2013 的选项是否已更改 但在 CR 11 R
  • JavaScript 对象使用 .检索值[重复]

    这个问题在这里已经有答案了 可能的重复 如何使用动态键访问对象 https stackoverflow com questions 6921803 how to access object using dynamic key 我有多个具有不
  • Spring:类文件版本错误 61.0,应该是 55.0

    我正在使用 Java 11 的 Maven 和 IntelliJ IDEA 上的 Maven 我正在尝试创建一个 JsonTset 类 如下所示 import org junit BeforeClass import org junit T
  • Jersey - 有没有办法用参数实例化每个请求资源?

    假设我有这样的课程 Path test public class TestResource private TestService testService public TestResource TestService testServic
  • 如何解决 Argo 输出参数大小限制?

    我有一个在 JSON 数组上循环的 Argo 工作流程 当列表变得太大时 我会收到如下错误 time some time level fatal msg Pod some pod name is invalid metadata annot
  • MongoDB 副本集状态未从启动更改为辅助

    我已经设置了一个包含 3 个节点的 MongoDB 副本集 虚拟机运行 CentOS 一个节点成为主节点 另外 2 个节点陷入启动状态 当这两个节点将其状态从启动更改为辅助时 aryabhata PRIMARY gt rs status s
  • Python:使用 lineno 引发语法错误

    我正在为特定于域的语言实现一个解析器 并且希望能够引发语法错误 引发此异常时如何设置文件名 行号和偏移量 例外 语法错误 当解析器遇到语法时引发 错误 这可能发生在 import 语句 exec 语句 调用内置函数 eval 或 input
  • 树枝变量中的树枝变量

    我有一个树枝变量html 为了在树枝模板中显示它 我这样做 html 该变量看起来像 div region top div div region center div region 也是一个变量 当 Twig 解析我的html变量 它不解析
  • 检测 jQuery 中 input[type=text] 的值变化

    我想在每次特定输入框的值发生变化时执行一个函数 它almost与 input keyup function 但是例如 将文本粘贴到框中时什么也不会发生 input change function 仅在输入模糊时触发 那么我如何立即知道文本框
  • GCC 相当于 MS 的 /bigobj

    我们正在大量使用boost serialization和一般模板 一切似乎都很顺利 不过 我们在 Windows 构建上遇到了障碍 这似乎会导致目标文件太大的问题 我们使用 MinGW Msys 和 g 4 7 0 c mingw bin
  • Flutter 删除所有路由

    我想开发一个注销按钮 它将把我发送到登录路线并从登录路线中删除所有其他路线Navigator 该文档似乎没有解释如何制作RoutePredicate或具有任何类型的removeAll 功能 我能够使用以下代码来完成此操作 Navigator
  • 我可以将参数传递给 rake db:seed 吗?

    我的一部分seeds rb将大量数据加载到数据库中 我希望能够有选择地加载这些数据 例如 rake db seed or rake db seed 0 只会加载运行网站所需的数据 而 rake db seed 1 也会将我的大数据文件加载到
  • Ember 数据无法读取未定义的属性“async”

    将 Ember v1 8 beta 3 与 Ember Data 1 0 beta 10 一起使用 您会收到以下错误 Error while processing route index Cannot read property async
  • 生成指定范围内的随机数 - 各种情况(int、float、inclusive、exclusive)

    given a Math random 返回 0 1 之间的数字的函数min max值来指定范围 我们如何为以下情况生成数字 我们想要的案例integer A min max B min max return Math floor Math
  • 如何更改jquery对话框按钮

    我想用我自己的按钮图像替换 jquery 对话框按钮 这样做最简洁的方法是什么 按钮上不会覆盖任何文本 我正在使用 jquery 1 4 2 和 jquery ui 1 8 1 不要应用 jQuery UI 使用的 CSS 选择器 使用具有
  • Global.asax 事件:Application_OnPostAuthenticateRequest

    我在用Application OnPostAuthenticateRequest事件在global asax to get a 经过身份验证的用户的角色和权限我还制作了自定义主体类来获取用户详细信息以及角色和权限 b 获取对该用户而言保持不