Я хочу сохранить дополнительную информацию у аутентифицированного пользователя, чтобы он был легко доступен (например, User.Identity.Id) вместо просто имени, поскольку я планирую иметь эту неуникальную ,
До сих пор я понял, что мне нужно реализовать собственный Принципал и / или Идентичность, но я не уверен, как это сделать. Я искал документацию и учебные материалы по этому вопросу, но я нашел похожие вещи в разных местах, и я нашел это немного запутанным.
Я видел, как добавить пользовательскую информацию в файл cookie аутентификации в свойстве пользовательских данных, но я хотел бы воспользоваться преимуществом внедрения зависимостей для модульного тестирования, которое я могу иметь с принципалом и удостоверением.
Какие точные шаги мне нужно учитывать, если я хочу реализовать свой Принципал или личность?
Что было бы проще всего сделать в этом сценарии (просто добавьте идентификатор и сохраните все значения по умолчанию)? «По умолчанию» будет включать поставщиков по умолчанию (членство, роли и т. Д.).
Я видел другой вопрос , но я был бы признателен за ответы, которые не оставляют пробелов между ними, такие как магические строки ролей в событии AuthenticateRequest в примерах. Вместо этого мне нужно знать, как добавить роли из SqlRoleProvider по умолчанию для текущего пользователя: когда и где это сделать, и если мне нужно сделать что-то еще, чтобы связать мои новые классы с другими поставщиками по умолчанию.
Было бы замечательно иметь возможность перейти к примеру приложения ASP.NET MVC 2 (например, из шаблона Visual Studio 2010), внести изменения и заставить его работать.
РЕДАКТИРОВАТЬ: Я отредактировал вопрос, чтобы лучше показать, что я в значительной степени потерял здесь, так что я не могу обойтись слишком высоким уровень ответов.
P.S .:: 1031 * Мне кажется, что имеет смысл иметь идентификатор в Идентичности вместо основного, хотя я, в некотором смысле, говорил об этом раньше.