Как получить имя пользователя в глобальном asax? - PullRequest
2 голосов
/ 29 июня 2010

Я пытаюсь проверить, принадлежит ли пользователь к чьему-либо списку друзей из базы данных, и соответственно перенаправить его.

Я делаю это в обработчике маршрутов, называемом Global Asax.

Я просто хочу узнать, как получить имя пользователя (из информации для входа в систему) в классе обработчика маршрута (или Global asax)

Я использовал это:

string username = HttpContext.Current.User.Identity.Name;  

и, что очень странно, это назначение ".aspx" в качестве имени пользователя !!

пс: я искал похожий вопрос, но тщетно. извините, если я не буду тщательно его искать.

Ответы [ 3 ]

4 голосов
/ 29 июня 2010

Это должно работать ... должно быть что-то в вашем методе аутентификации.

Как у вас это настроено?

Похоже, вы делаете аутентификацию самостоятельно и назначаете идентификационные данные изнеправильная переменная сервера

3 голосов
/ 29 октября 2011

global.asax Session_Start вызывается при запуске сеанса, например, когда браузер заходит на ваш сайт.Пользователь браузера, как правило, не вошел в систему в этот момент, поэтому не будет никакого HttpContext.Current.User.Identity.Name для вас, чтобы захватить.Вы должны получить пустую строку.

Исключением может быть, если пользователь уже прошел аутентификацию и по какой-то причине сеанс перезапускается, например, если вы сбросили сервер или время ожидания сеанса было короче, чемваше время аутентификации.Но в общем случае последовательность должна быть такой:

  1. начинается сессия
  2. пользователь входит в систему и становится доступным HttpContext.Current.User.Identity.Name

Итак, ответ на ваш вопрос: «в общем случае, вы не можете».

2 голосов
/ 04 августа 2011

Проверьте ваш файл web.config, найдите раздел и убедитесь, что режим аутентификации установлен на windows, например:

<authentication mode="Windows"></authentication>
...