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