Asp.net mvc 3 从ASP.NET转换MVC3成员资格配置文件

Asp.net mvc 3 从ASP.NET转换MVC3成员资格配置文件,asp.net-mvc-3,asp.net-membership,asp.net-profiles,Asp.net Mvc 3,Asp.net Membership,Asp.net Profiles,我正在将一个web应用程序从asp.net转换为MVC3,并试图找出如何设置和访问在旧应用程序中配置的配置文件属性 我可以从旧应用程序访问数据库,并且可以使用MVC3创建新用户 Membership.CreateUser(model.UserName, model.Password, model.Email, model.SecretQuestion, model.SecretAnswer, true, out createStatus); 此新用户被放置在数据库用户表中。我还需要存储有关用户

我正在将一个web应用程序从asp.net转换为MVC3,并试图找出如何设置和访问在旧应用程序中配置的配置文件属性

我可以从旧应用程序访问数据库,并且可以使用MVC3创建新用户

Membership.CreateUser(model.UserName, model.Password, model.Email, model.SecretQuestion, model.SecretAnswer, true, out createStatus);
此新用户被放置在数据库用户表中。我还需要存储有关用户的其他信息,并且我必须仍然使用在旧应用程序中创建的旧数据库,这样当我们切换到新应用程序时,当前用户仍然可以登录,并且除了一些布局改进之外,不会注意到任何更改

旧数据库中还有一个名为PROFILE的表,该表存储了其他值,如

UserId、PropertyNames、PropertyValuesString、PropertyValuesBinary、LastUpdateDate

DB7E1F8E-FB45-49E5-A2AF-C83A371CC22F,PartnerID:S:0:2:FirstName:S:2:4:LastName:S:6:12:index:S:18:1:,26milominder3,0x,2010-09-29 21:23:33.737

这是使用MVC3中不可用的成员资格向导创建的。我需要找到一种方法来创建具有MVC3的用户,并且仍然向该表添加适当的值


提前感谢您提供的任何帮助

您可以创建自己的会员类。。。尝试实现MembershipProvider类并将其注册到Web.Config中


这是处理会员资格的非常灵活的方式。我一直在使用它…

默认的MVC 3 internet应用程序模板在界面中包含一个方法,用于创建用户:

public interface IMembershipService
{
    int MinPasswordLength { get; }

    bool ValidateUser(string userName, string password);
    MembershipCreateStatus CreateUser(string userName, string password, string email);
    bool ChangePassword(string userName, string oldPassword, string newPassword);
}
其实施方式如下:

        public MembershipCreateStatus CreateUser(string userName, string password, string email)
    {
        if (String.IsNullOrEmpty(userName)) throw new ArgumentException("Value cannot be null or empty.", "userName");
        if (String.IsNullOrEmpty(password)) throw new ArgumentException("Value cannot be null or empty.", "password");
        if (String.IsNullOrEmpty(email)) throw new ArgumentException("Value cannot be null or empty.", "email");

        MembershipCreateStatus status;
        _provider.CreateUser(userName, password, email, null, null, true, null, out status);
        return status;
    }
所以-你需要

添加或更改现有方法,并将新参数添加到方法签名中

将参数添加到接口方法或在接口上创建新方法

将函数调用更改为_provider.CreateUser以传递参数


执行此操作是否会在配置文件表中存储其他配置文件数据?我读到的所有关于这样做的内容都要求你修改用户表,而我没有这种奢侈。不,不直接,但你有这样做的自由。。。您可以决定将数据存储在何处,如果需要,可以拆分用户表和配置文件表。。。我认为对于身份验证,您只需要用户表。。。要修改概要文件表,只需向控制器添加方法即可。。。