User.Identity теряется при сценарии балансировки нагрузки для моего веб-сайта ASP.NET - PullRequest
3 голосов
/ 01 декабря 2011

Я использую Windows Authentication с веб-сайтом с балансировкой нагрузки.Балансировка нагрузки основана на двух веб-серверах IIS.На моем сайте есть функция, которая позволяет пользователям повторно входить в систему, например Вход через Sharepoint от имени другого пользователя .

Но я замечаю, что во время повторного входа User.Identity на одном сайте изменяетсяно на другом сайте все еще сохранен предыдущий аккаунт.

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

Кто-нибудь сталкивался с этой проблемой при игре с балансом загрузки?Или вы знаете какую-нибудь статью, которая может помочь?

Я не знаю, как решить проблему.Буду признателен за любую помощь.



по тому, как я использую этот метод для архивации Relogon, он работает на одном сервере.http://www.roelvanlisdonk.nl/?p=825.Привет ребята,Я все еще работаю над этой функцией.Я печатаю User.Identity.Name на моей домашней странице.когда я меняю учетную запись, выходные данные User.Identity.Name изменяются правильно.но когда я обновляю домашнюю страницу, иногда предыдущая учетная запись будет отображаться на домашней странице.

1 Ответ

0 голосов
/ 01 декабря 2011

Если я правильно читаю ваши комментарии, в вашей настройке задействованы два веб-сервера, каждый с локальным пользователем с тем же именем (и, вероятно, с тем же паролем), и вы пытаетесь использовать проверку подлинности Windows в сценарии веб-фермы. .

В вашей ситуации у каждого компьютера есть своя учетная запись с именем - предположим, что ваше имя пользователя «AuthorizedUser». Помните, что если AuthorizedUser является локальной учетной записью на обеих машинах, то это две совершенно разные учетные записи пользователей. Каждый компьютер проверяет свою собственную учетную запись пользователя, чтобы проверить личность человека, и в ситуации, не относящейся к домену, у компьютера А нет причин доверять пользователю, прошедшему проверку подлинности на компьютере Б.

Если бы было бы , возможно, что компьютер A доверенный компьютер B без сценария домена - всего два случайных компьютера, у которых есть пользователь с одинаковым именем, представьте, как легко было бы взломать чью-либо сеть сервер, который использует проверку подлинности Windows. Все, что вам нужно сделать, это угадать правильное имя пользователя, а не правильную комбинацию имени пользователя и пароля. Легко понять, почему это плохая идея.

Чтобы проверка подлинности Windows работала в сценарии веб-фермы, необходимо использовать пользователя домена (домен Windows NT), а этому пользователю домена должны быть установлены одинаковые разрешения на двух серверах. Таким образом, существует только один AuthorizedUser, и оба веб-сервера могут проверять идентичность по домену. Оба веб-сервера автоматически будут доверять тому, что контроллер домена правильно авторизовал пользователя, и будут доверять домену.

...