2

我有一个 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;

这就是失败的地方。我得到的错误是:

不能为匿名用户设置此属性。

我明白为什么;这是因为没有用户登录或没有指定用户,所以我当然不能为用户设置配置文件。我从 Pro ASP.NET MVC 3 Framework 的第 754 页开始工作,这就是我从中获得此代码的地方。我已经在 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>

我的问题是如何设置我要注册的用户的名字和姓氏?

4

1 回答 1

5

尝试通过以下方式获取该用户用户名的配置文件:

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

是的,为您刚刚创建的用户创建“获取”配置文件,而不仅仅是创建它(误导!)。然后你可以使用:

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

profile.Save();设置值后不要忘记调用

于 2012-01-17T12:15:34.070 回答