HttpContext.Current.User.Identity.Name возвращает ноль - PullRequest
1 голос
/ 30 августа 2011

System.Web.HttpContext.Current.User.Identity.Name возвращает "ноль".

Я определенно вошел в систему.

Как это можно решить?

protected override void OnActionExecuting(ActionExecutingContext filterContext)
{
     base.OnActionExecuting(filterContext);

     if (Session["FirstName"] == null)
     {
         string loginName = System.Web.HttpContext.Current.User.Identity.Name;
         string networkId = loginName.Split('\\')[1];
         Session["FirstName"] = new AD_Utility().FirstName(networkId);
     }
     ViewBag.FirstName = Session["FirstName"];
}

1 Ответ

3 голосов
/ 30 августа 2011

Какую аутентификацию вы настроили в своем файле web.config? Кроме того, вы используете IIS или веб-сервер разработчика? Вам может потребоваться включить аутентификацию форм или аутентификацию Windows в IIS или в вашем файле web.config.

Надеюсь, это поможет.

Edit: -

Пожалуйста, перейдите по ссылке, указанной выше. Это хороший пример использования аутентификации форм в ASP.NET MVC. Я давно не играл с ASP.NET MVC, но думаю, что ваша проблема в том, что HttpContext.Current.User никогда не заполнялся после аутентификации вашего пользователя. Убедитесь, что вы используете FormsAuthentication.SetAuthCookie и FormsAuthentication.RedirectFromLoginPage в своей функции аутентификации.

Кроме того, из вашего вопроса выше может показаться, что вы используете AD в качестве хранилища безопасности. Возможно, вы захотите изучить использование аутентификации Windows, так как это должно автоматически заполнить HTTPContext.Current.User.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...