Создать профиль участника MVC 3 - PullRequest
1 голос
/ 08 марта 2012

Я создаю страницу администратора для моего приложения ASP.Net MVC 3. Я могу создать нового пользователя, как это:

MembershipUser mu = Membership.CreateUser(user.UserName, user.Password);
Membership.UpdateUser(mu);

Я могу назначить роли следующим образом:

Roles.AddUserToRole(user.UserName, "Customer");

Но как мне создать и прикрепить новый профиль?

ProfileManager имеет методы для поиска и удаления профилей, но не имеет метода для их создания.

Если это имеет значение, я добавил пользовательские свойства профиля, такие как:

<properties>
  <add name="FirstName" />
  <add name="LastName" />
</properties>      

Я предполагаю, что профиль не создается автоматически при создании пользователя, потому что последующий вызов

ProfileInfoCollection profiles = 
    ProfileManager.GetAllProfiles(ProfileAuthenticationOption.All);

возвращает пустую коллекцию, а Membership.GetAllUsers() возвращает одного пользователя, которого я только что создал.

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

Я только что понял, что должен использовать ProfileBase для создания новой записи профиля:

ProfileBase pi = ProfileBase.Create(user.UserName);
1 голос
/ 14 октября 2012

Вы можете получить доступ к свойствам профиля, используя свойство HttpContext.Profile, которое доступно через класс Controller:

ViewBag.Name = HttpContext.Profile["Name"];

Платформа ASP.NET использует поставщика профиля для загрузки свойств профиля для пользователя при первом обращении к данным профиля и записывает любые изменения обратно через поставщика в конце запроса. Нам не нужно явно сохранять изменения; это происходит автоматически.

...