Kun*_*pal 6 .net asp.net asp.net-membership asp.net-profiles
我在基于MVC2框架的项目中使用了带有OpenId实现的Membership API.除了用户名之外,我还需要在注册时将一些其他字段与用户相关联.
我不确定但是我认为asp.net中的Profile系统是为这种类型的要求而构建的.另外,我看到一个包含名为'aspnet_profile'的其他成员资格表的表.
我在应用程序web.config中添加了以下设置以启用配置文件:
<profile enabled="true">
<properties>
<add name="FullName" allowAnonymous="false"/>
</properties>
</profile>
Run Code Online (Sandbox Code Playgroud)
如前所述,应用程序需要一些额外的数据与用户相关联,因此在使用Membership API创建用户时,我添加了几行代码以进入配置文件表
System.Web.Security.MembershipCreateStatus status = MembershipService.CreateUser(userModel.UserName, userModel.Password, userModel.UserName);
if (status == System.Web.Security.MembershipCreateStatus.Success)
{
FormsService.SignIn(userModel.UserName, true);
Session["Username"] = userModel.UserName;
dynamic profile = ProfileBase.Create(MembershipService.GetUser(userModel.UserName).UserName);
profile.FullName = userModel.UserFullName;
profile.Save();
RedirectToAction("Tech", "Home");
}
Run Code Online (Sandbox Code Playgroud)
但我没有看到数据库中的aspnet_profile表中添加了任何行.另外,我想询问这是否是添加其他数据以及默认成员资格数据的首选方式
我通过在 web.config 中进行一些与默认配置文件提供程序名称相关的更改来使其工作:
<profile enabled="true" defaultProvider="AspNetSqlProfileProvider">
<providers>
<clear/>
<add name="AspNetSqlProfileProvider" applicationName="/" connectionStringName="ApplicationServices" type="System.Web.Profile.SqlProfileProvider" />
</providers>
<properties>
<add name="FullName" allowAnonymous="false"/>
</properties>
</profile>
Run Code Online (Sandbox Code Playgroud)
另外,我在调用 ProfileBase.Create 函数和设置 Profile.FullName 之间又添加了一行;
profile.Initialize(userModel.userName, true);
Run Code Online (Sandbox Code Playgroud)
我终于在 aspnet_profile 表中看到了新注册用户的条目:)
| 归档时间: |
|
| 查看次数: |
7027 次 |
| 最近记录: |