Я работаю над интранет-приложением MVC 3 (проверка подлинности Windows).Приложение должно отображать страницу профиля пользователя, как только пользователь входит в систему. Чтобы сделать это, имя пользователя вошедшего в систему пользователя должно быть передано в качестве параметра маршрута в следующем маршруте в Global.asax.cs.
routes.MapRoute(
"Initial",
"{controller}/{action}/{emailAlias}", // URL with parameters
new { controller = "Home", action = "Home", userId = **<USERNAME>**}
);
Здесь я использовал несколько альтернатив.
Сначала я использовал Environment.Username
.Который хорошо работает в разработке.Но не после публикации.Потому что тогда Environment.Username
возвращает имя пула приложений, в котором запускается приложение. Как описано здесь .
Controller.User.Identity.Name
используется для получения желаемого имени пользователя в контроллерах, хорошо работает до и после публикации.Но его нельзя использовать в контексте Global.asax.cs.
System.Web.HttpContext.Current.User.Identity.Name
возвращает нулевую ссылку.
System.Security.Principal.WindowsIdentity.GetCurrent().Name
работает примерно так же, как Environment.Username
Я уверен, что легко понять, что я нубк настоящему времениМожет быть, я пропустил что-то очевидное.Если это так, пожалуйста, укажите это или, пожалуйста, сообщите мне о простом решении, спасибо заранее.