2012-03-08 2 views
1

Я создаю страницу администратора для моего приложения ASP.Net MVC 3. Я могу создать новый пользователь, как это:Создать профиль членства 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

Я просто понял, что я должен использовать ProfileBase, чтобы создать новую запись профиля:

ProfileBase pi = ProfileBase.Create(user.UserName); 
1

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

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

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