Поставщики профилей и проверка подлинности Windows
Все наши внутренние проекты используют проверку подлинности и олицетворение Active Directory, поскольку это является принятой политикой безопасности для компании.
В настоящее время у меня есть сценарий, в котором мне нужно хранить информацию о профиле пользователя, и я хотел бы использовать встроенные поставщики профилей, которые являются стандартными в ASP.Net. Ранее я успешно использовал это с проверкой подлинности с помощью форм, однако не могу найти никакой полезной информации о том, как реализовать это при использовании проверки подлинности Windows.
- Есть ли какой-нибудь способ, которым я могу получить только Поставщик Профиля, работающий с Аутентификацией Windows из коробки?
- Буду ли я вынужден создать пользовательский профиль провайдера?
Данные будут храниться в базе данных, а не в Active Directory. Однако, если последнее возможно, некоторые рекомендации будут оценены.
Заметки
- Мне не нужно использовать поставщика ролей, это обрабатывается AD.
- Я не уверен, что мне нужно внедрить провайдера AD Membership, чтобы заставить провайдера профилей работать.
1 ответ
Вы можете просто использовать стандартный SqlProfileProvider. В качестве имени пользователя используйте свойство Context.User.Identity.Name. ASP.NET сам создаст запись пользователя в своих стандартных таблицах, чтобы отслеживать ее. Поставщик ролей также работает в сочетании с аутентификацией Windows. Смотрите эту ссылку для получения дополнительной информации: http://weblogs.asp.net/scottgu/pages/Recipe_3A00_-Implementing-Role_2D00_Based-Security-with-ASP.NET-2.0-using-Windows-Authentication-and-SQL-Server.aspx
если вы включите и настроите поставщика профилей в файле web.config, вы можете использовать его следующим образом:
ProfileBase profile = ProfileBase.Create(Context.User.Identity.Name, true);
profile.SetPropertyValue("MyProfileProperty", propertyValue);
profile.Save();
Удачи!