获取 ASP.NET MVC3 Intranet 应用程序中登录的用户名

2023-11-25

我正在开发 MVC 3 Intranet 应用程序(Windows 身份验证)。用户登录后,应用程序必须显示用户的个人资料页面。为此,必须将登录用户的用户名作为 Global.asax.cs 中以下路由中的路由参数传入。

routes.MapRoute(
    "Initial",
    "{controller}/{action}/{emailAlias}", // URL with parameters
    new { controller = "Home", action = "Home", userId = **<USERNAME>**}
);

在这里,我使用了一些替代方案。

  1. 一开始我用的是Environment.Username。这在开发中效果很好。但发布后就不行了。因为那时Environment.Username生成应用程序运行所在的应用程序池的名称。如上所述here.

  2. Controller.User.Identity.Name用于在控制器中获取所需的用户名,在发布前和发布后效果良好。但它不能在 Global.asax.cs 上下文中使用。

  3. System.Web.HttpContext.Current.User.Identity.Name产生空引用。

  4. System.Security.Principal.WindowsIdentity.GetCurrent().Name工作原理有点像Environment.Username

我确信现在很容易看出我是一个菜鸟。也许我错过了一些明显的事情。如果是这样,请指出,或者请告诉我一个简单的解决方案,提前致谢。


global.asax 代码应该在应用程序启动(和关闭)时运行,并且当时没有任何会话或用户(因此名称global)。为什么路由中需要用户名?你应该只使用User.Identity.Name在控制器的代码中识别用户,而不是依赖将其作为参数获取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 ASP.NET MVC3 Intranet 应用程序中登录的用户名 的相关文章

随机推荐

  • 设置 JAR 文件的类路径

    我最近刚刚使用 Eclipse 创建了 Java 项目 需要 2 个 JAR 文件 phiget21 jar 和 mysql jar 在 Eclipse 中运行程序时一切正常 并且我注意到 jar 文件保存在 lib 文件夹中 我很快就要将
  • DB2 MERGE 语句错误

    我尝试了以下几种变体 但仍然出现错误 有什么方法可以解决这个问题 DB2 10 1 用于 z OS V10 的 DB2 对于以下 MERGE INTO TRGT t USING SRC s ON t ACCTID s ACCTID AND
  • Swift 的 if let 是如何评估的?

    我在 Swift 网站和这里的各种帖子上看到了这段代码 我正在尝试掌握基础知识 这条线如何评价 if let name optionalName 我很困惑 因为它不是 name 可选名称 它正在分配值 那么它如何报告 true 和 当你用
  • 限制在给定时间开放的承诺数量

    以下 TypeScript 执行每个调用doSomething action 一次一个 这意味着列表中的第二项在第一项完成之前不会被调用 async performActionsOneAtATime for let action of li
  • 离线网络应用程序。如何存储数据?

    介绍 应用程序必须能够完全离线运行 在本地存储数据并在有互联网连接时通过 AJAX 将其发布到网上 这可能是几天后 问题 如何使用Javascript存储数据 补充笔记 我不想使用任何服务器端技术 它必须像数据库一样安全 我读过有关 coo
  • Rails:在 Rails 中使用带有 has_one 关联的构建

    在这个例子中 我创建了一个user没有profile 然后稍后创建一个profile对于该用户 我尝试使用构建has one协会但是爆炸了 我看到这个工作的唯一方法是使用has many The user应该最多只有一个profile 我一
  • 选项 和 for 理解

    我正在编写一个用于理解的代码 并且想知道一些事情 def updateUserStats user User Either Error User for stampleCount lt stampleRepository getStampl
  • Android重复提供者权限问题

    我们正在尝试发布一款休闲应用程序的付费无广告版本 该应用程序目前免费发布但带有广告 我们将所有包名称重构为com mycompanyname appname pro 市场上的免费版基本上没有 pro结尾 我们还进入了内容提供商并将权限更改为
  • 查找数据库上打开的连接数

    我的 Web 应用程序位于 asp net 2 0 c 2 0 和 sql server 208 中 我如何找到 sql server 2008 数据库上的打开连接数 有没有办法清除连接池 因为我的网站托管在共享主机上他们提供了有限的联系
  • Yii2:如何自定义 404 和 503 等错误页面

    我有以下 errorHandler 配置 errorHandler gt errorAction gt page error 在控制器页面中 在我想检查的操作错误中 我收到 404 错误 找不到页面 我怎样才能检查它 如果您正在尝试自定义E
  • 字符串文字存储在哪里,我可以修改它们吗?

    我对 C 中的字符串文字有几个问题 char strPtr Hello char strArray Hello Now strPtr and strArray被认为是字符串文字 根据我的理解 字符串文字存储在只读内存中 因此我们无法修改它们
  • Apiary.io - 具有不同参数的多个响应 (200)

    我试图通过不同的参数获得不同的响应 但有些东西不起作用 这是我的 API Question questions question id A Question object has the following attributes Param
  • 使用自定义表示在 Scala 中对 ADT 进行通用派生

    我正在转述来自 circe Gitter 频道的问题 here 假设我有一个 Scala 密封特征层次结构 或 ADT 如下所示 sealed trait Item case class Cake flavor String height
  • 将 JSON 反序列化为 JAVASCRIPT 对象 [重复]

    这个问题在这里已经有答案了 我有一个将 JSON 文本反序列化为 javascript 对象的问题 我测试了 jquery 和 yui 库 我有这个类 function Identifier name contextId this name
  • 获取操作系统级别的系统信息

    我目前正在构建一个 Java 应用程序 该应用程序最终可以在许多不同的平台上运行 但主要是 Solaris Linux 和 Windows 的变体 有没有人能够成功提取底层操作系统中当前使用的磁盘空间 CPU 利用率和内存等信息 Java
  • 以 y_true 取决于 y_pred 的方式自定义 Keras 的损失函数

    我正在研究多标签分类器 我有许多输出标签 1 0 0 1 其中 1 表示输入属于该标签 0 表示否则 就我而言 我使用的损失函数是基于 MSE 的 我想改变损失函数 当输出标签为 1时 它会改变为该标签的预测概率 检查附图以更好地理解我的意
  • Numpy int 数组:查找多个目标整数的索引

    我有一个大的 numpy 数组 dtype int 和我想在该数组中找到的一组数字 例如 import numpy as np values np array 1 2 3 1 2 4 5 6 3 2 1 searchvals 3 1 res
  • R 标识符号更改之前的行

    我有一个向量 df lt c 5 9 8 7 1 如何识别标志变化之前的位置 IEdf 2 这很简单 如果你了解的话sign功能 which diff sign df 0 1 2
  • 使用以编程方式构造的公式有什么陷阱吗?

    我想要遍历一个潜在解释变量的长向量 依次对每个变量回归响应变量 而不是粘贴在一起 模型公式 我正在考虑使用reformulate 如此处所示 功能fun 下面似乎可以完成工作 拟合所需的模型 但请注意 它在其调用元素中记录name构造的公式
  • 获取 ASP.NET MVC3 Intranet 应用程序中登录的用户名

    我正在开发 MVC 3 Intranet 应用程序 Windows 身份验证 用户登录后 应用程序必须显示用户的个人资料页面 为此 必须将登录用户的用户名作为 Global asax cs 中以下路由中的路由参数传入 routes MapR