小编pha*_*tar的帖子

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

我正在研究MVC 3内部网应用程序(Windows身份验证).一旦用户登录,应用程序必须显示用户的配置文件页面.为此,必须在Global.asax.cs中的以下路由中将登录用户的用户名作为路由参数传入.

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

在这里,我已经使用了一些替代品.

  1. 起初我用过Environment.Username.哪个在开发中很有效.但不是在出版后.因为这时Environment.Username产生哪些应用程序在运行应用程序池的名称.如所描述这里.

  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

我相信现在很容易弄明白我是个菜鸟.也许我错过了一些明显的东西.如果是这样,请指出或请提前告诉我一个简单的解决方案.

intranet windows-authentication asp.net-mvc-3

10
推荐指数
1
解决办法
1万
查看次数