Sac*_*nth 2 c# asp.net-membership asp.net-profiles asp.net-mvc-3
我有一个MVC3站点,我正在编写代码来注册用户.代码执行此操作:
MembershipCreateStatus createStatus;
Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);
Run Code Online (Sandbox Code Playgroud)
它接下来要做的是:
HttpContext.Profile["FirstNAme"] = model.FirstName;
HttpContext.Profile["LastName"] = model.LastName;
Run Code Online (Sandbox Code Playgroud)
这是它失败的地方.我得到的错误是:
无法为匿名用户设置此属性.
我理解为什么; 这是因为没有用户登录或没有指定用户,所以当然我无法为用户设置配置文件.我正在从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>
Run Code Online (Sandbox Code Playgroud)
我的问题是如何设置我要注册的用户的名字和姓氏?
尝试通过以下方式获取该用户的用户名的个人资料:
ProfileBase profile = ProfileBase.Create(model.UserName);
Run Code Online (Sandbox Code Playgroud)
是的,为您刚刚创建的用户创建"获取"配置文件,而不仅仅是创建它(误导!).然后你可以使用:
profile["FirstName"] = model.FirstName;
profile["LastName"] = model.LastName;
Run Code Online (Sandbox Code Playgroud)
profile.Save();
设置值后不要忘记打电话
归档时间: |
|
查看次数: |
3887 次 |
最近记录: |