我在MVC 3 Intranet应用程序(Windows身份验证)工作。应用程序必须显示在用户一旦用户登录的个人资料页面。为了做到这一点在用户登录的用户名必须是在Global.asax.cs中以下路由的路由参数传入。入门登录的用户名在ASP.NET MVC3 Intranet应用程序
routes.MapRoute(
"Initial",
"{controller}/{action}/{emailAlias}", // URL with parameters
new { controller = "Home", action = "Home", userId = **<USERNAME>**}
);
在这里,我用了一些替代品。
起初我用
Environment.Username
。这在开发中效果很好。但不是在发布后。因为然后Environment.Username
产生该应用程序在运行的应用程序池的名称。如所描述的here。Controller.User.Identity.Name
来获得所需的用户名在控制器中,前,后出版效果很好。但它不能用在Global.asax.cs的上下文中。System.Web.HttpContext.Current.User.Identity.Name
产生空引用。System.Security.Principal.WindowsIdentity.GetCurrent().Name
作品种类相同Environment.Username
我敢肯定,它很容易被现在弄清楚,我是小白。也许我错过了一些明显的东西。如果是这样,请指出或请提前告诉我一个简单的解决方案。
所以,当我改变用户id我的同事的用户名他的个人资料会显示出来? – jao