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);

はい、 create は、作成したばかりのユーザーのプロファイルを作成するだけでなく、作成したばかりのユーザーのプロファイルを「取得」します (誤解を招く!)。次に、次を使用できます。

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

profile.Save();値を設定した後に呼び出すことを忘れないでください

于 2012-01-17T12:15:34.070 に答える