2010-08-23 3 views
2

Как я могу использовать Guid для реализации единого знака в одном домене? Я не могу использовать сеансы, поскольку различные веб-приложения будут открываться в новых окнах, и, следовательно, потеряет сеанс.Single Sign On using Guid

Используемая технология: ASP.net 3.5, архитектура MVC2, C#.

+0

Должен ли он быть GUID? Или вам просто нужна Active Directory для проверки/передачи учетных данных пользователя на ваш веб-сайт ASP.NET? – Gary

+0

Я бы предпочел, чтобы это было ориентиром, так как я планирую использовать это значение и ID пользователя для проверки пользователя. – user428747

+0

Смотрите: http://stackoverflow.com/questions/315403/getting-authenticate-ad-users-objectguid-from-asp-net – Gary

ответ

2

Вы должны иметь возможность использовать cookie и получать доступ к нему из любого приложения, работающего в одном домене. Если другие веб-приложение, сидит на подобласти, вам необходимо установить Domain из печенья, как:

Response.Cookies("CookieName").Domain = ".mydomain.com" 

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

Редактировать, чтобы уточнить: У каждого сайта есть файл cookie. Вы можете определить, вошел ли пользователь в систему или нет, основываясь на существовании файла cookie, которым можно управлять, установив срок действия файла cookie.

Если вы хотите сделать это более сложным (возможно, проблемы с безопасностью связаны только с файлом cookie), вы можете сохранить GUID в базе данных и просмотреть каждую страницу, чтобы обеспечить идентификацию GUID, который они передают in действительно. Отсюда, однако, вы хотите управлять GUID, проверенным в базе данных, зависит от вас (сравнить метки времени и т. Д.).

Возможно, вы захотите сохранить дополнительную информацию в Cookie для использования. Например, вы можете создать случайную строку и сохранить ее с помощью GUID в базе данных. Выполните одностороннее шифрование в этой строке и сохраните его в Cookie, когда вы сначала сохраните его. Таким образом, вы можете сравнить это значение при проверке, является ли файл cookie действительным.

+0

Спасибо, что было полезно ... – user428747

+0

Спасибо, ребята , Я использовал system.guid для генерации значения guid для каждого зарегистрированного пользователя и сохранил его в базе данных. Это был мой уникальный идентификатор для зарегистрированного пользователя, который я использовал для подписывания знака. – user428747

+0

Я пытаюсь создать единый знак в webapp, для которого будет доступ к различным сайтам с их собственной базой данных. Как я могу это сделать. – user428747