Как установить данные профиля для нового пользователя - PullRequest
2 голосов
/ 17 января 2012

У меня есть сайт MVC3, и я пишу код для регистрации пользователя.Код делает это:

MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

Следующая вещь, которую он делает, это:

HttpContext.Profile["FirstNAme"] = model.FirstName;
HttpContext.Profile["LastName"] = model.LastName;

Вот где это терпит неудачу.Я получаю ошибку:

Это свойство нельзя установить для анонимных пользователей.

Я понимаю, почему;это потому, что ни один пользователь не вошел в систему или не указан пользователь, поэтому, конечно, я не могу установить профиль для пользователя.Я работаю со страницы 754 Pro Pro.NET MVC 3 Framework, и именно здесь я получил этот код.Я установил это в файле web.config.

<profile enabled="true" defaultProvider="AspNetSqlProfileProvider">
  <providers>
    <clear/>
    <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" />
  </providers>
  <properties>
    <add name="FirstName" type="String"/>
    <add name="LastName" type="String"/>
  </properties>
</profile>

Мой вопрос: как мне установить имя и фамилию пользователя, которого я пытаюсь зарегистрировать?

1 Ответ

5 голосов
/ 17 января 2012

Попробуйте получить профиль для имени пользователя этого пользователя по:

ProfileBase profile = ProfileBase.Create(model.UserName);

Да, создание «получает» профиль для только что созданного пользователя, а не просто создает его (вводит в заблуждение!). Тогда вы можете использовать:

profile["FirstName"] = model.FirstName;
profile["LastName"] = model.LastName;

Не забудьте позвонить profile.Save(); после установки значений

...