Имя пользователя клиента Silverlight - PullRequest
1 голос
/ 19 апреля 2011

Я пытаюсь вернуть имя пользователя клиента обратно в Silverlight, используя HttpContext.Current.User.Identity.Name на странице .aspx, которая запускает приложение.

Я подключил это к InitParams, работающему нормально, передавая его в silverlight с сервером разработки ASP.Net, но когда я перехожу на веб-сайт IIS, он возвращает пустую строку.

Все наши пользователи будут находиться в одной IP-подсети с разными доменами. Это приложение для интранета. Мне нужно знать, кто они, желательно без аутентификации, чтобы загрузить соответствующий интерфейс. У меня еще нет аутентификации Windows или Forms, установленной в приложении.

.... это возможно?

1 Ответ

2 голосов
/ 19 апреля 2011

Без аутентификации на стороне сервера, я считаю, что не возможно. Вам потребуется аутентифицировать страницу ASP.NET, чтобы записать имя пользователя клиента в этот параметр инициализации.

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

Предложение:

Включить проверку подлинности Windows в IIS для той папки приложения, в которой находится страница ASP.Net. Отключить аноним. Это должно (в теории) быть хорошо для интранета. На данный момент, я думаю, вы сможете получить аутентифицированного пользователя из контекста HTTP. Мы используем Thread.CurrentPrincipal.Identity.Name, поскольку мы делаем это в веб-службе WCF.

Не все браузеры поддерживают проверку подлинности Windows. IE и Chrome работают лучше всего. Firefox требует, чтобы вы включили это для каждого сайта (посмотрите настройки «trusted-uris», обратите внимание, что Negotiate и NTLM - это отдельные настройки). Safari и Opera, а также клиенты не из Windows, я больше не уверен.

Чтобы получить более согласованную поддержку в разных браузерах, загляните в «альтернативный» клиент HTTP в Silverlight. Тем не менее, я думаю, что это не будет работать с установкой параметров инициализации на странице asp. Если бы вы могли сделать дополнительный запрос к другой странице ASP (или веб-службе), чтобы получить пользователя после загрузки, вы можете использовать этот другой стек http. Я обнаружил, что он поддерживает саму аутентификацию независимо от браузера.

...