Я хочу хранить дополнительную информацию у аутентифицированного пользователя, чтобы я мог легко ее легко найти (например, User.Identity.Id, например) вместо имени, так как я планирую иметь это не уникальное.Как реализовать пользовательский принцип и идентификатор в ASP.NET MVC?
До сих пор я собрал, что должен посмотреть, как реализовать пользовательский принцип и/или идентификатор, но я не уверен, как это сделать. Я искал документацию и учебники по этому вопросу, но я нашел связанные вещи в разных местах, и я нашел это немного запутанным.
Я видел, как добавить пользовательскую информацию в файл cookie аутентификации в свойстве данных пользователя, но я хотел бы иметь преимущество инъекции зависимостей для модульного тестирования, которое я могу иметь с принципалом и идентификацией.
Какие точных шагов мне нужно рассмотреть, если я хочу, чтобы реализовать свой собственный принципал или идентичность?
Что было бы самым простым в этом сценарии (просто добавьте идентификатор и сохраните все значения по умолчанию)? «По умолчанию» будут включать поставщиков по умолчанию (членство, роли и т. Д.).
Я видел номер other question, но я был бы благодарен за ответы, которые не оставляют между ними никаких отверстий, таких как роли магических строк в событии AuthenticateRequest в примерах. Вместо этого мне нужно знать, как добавить роли от SqlRoleProvider по умолчанию к текущему пользователю: когда и где это сделать, и если мне нужно сделать что-нибудь еще, чтобы подключить мои новые классы к другим поставщикам по умолчанию.
Было бы замечательно иметь возможность перейти к образцу ASP.NET MVC 2 (например, из шаблона Visual Studio 2010), внести изменения и заставить его работать.
EDIT: Я редактировал вопрос, чтобы лучше показать, что я довольно много потерял здесь, так что я не могу сделать с ответами слишком высокого уровня.
P.S .: Мне кажется, что имеет смысл иметь идентификатор в Identity вместо принципала, хотя я, в некотором роде, заявил об этом раньше.
У вас в настоящее время установлены аутентификация и ротация форм? –
Делаю. Я начал с веб-приложения MVC (в отличие от MVC * Empty * Web Application) из шаблонов VS 2010, поэтому у него есть все поставщики SQL по умолчанию для управления пользователями: членство и роли включены. Но большая часть его делается за шторами. По соглашению, как бы –
вы не можете использовать поддержку профиля для такого рода вещей? Это то, что для него (дополнительные данные, связанные с пользователем) - должно быть проще, чем пытаться создать «пользовательский пользователь». Я думаю, –