asp.net – 使用成员资格数据在aspnet_profile表中存储其他数据

我在基于MVC2框架的项目中使用了带有OpenId实现的Membership API.
除了用户名之外,我还需要在注册时将一些其他字段与用户相关联.

我不确定但是我认为asp.net中的Profile系统是为这种类型的要求而构建的.另外,我看到一个包含名为’aspnet_profile’的其他成员资格表的表.

我在应用程序web.config添加了以下设置以启用配置文件

<profile enabled="true">
      <properties>
        <add  name="FullName" allowAnonymous="false"/>

      </properties>

    </profile>

如前所述,应用程序需要一些额外的数据与用户相关联,因此在使用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");



                   }

但我没有看到数据库中的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>

另外,我在调用ProfileBase.Create函数和设置Profile.FullName之间再添加一行;

profile.Initialize(usermodel.userName,true);

我终于在aspnet_profile表中看到了一个注册用户的条目:)

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....