加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

使用.NET 4.5的ASP.Net成员身份和实体框架迁移的问题

发布时间:2020-12-16 06:59:49 所属栏目:asp.Net 来源:网络整理
导读:我正在学习实体框架中可用的迁移功能,我似乎遇到了问题.当使用互联网应用程序项目模板和启用实体框架迁移等时.我试图在数据库上创建一个默认用户 – 使用自动迁移: protected override void Seed(eManager.Web.Infrastructure.DepartmentDb context){ WebSe
我正在学习实体框架中可用的迁移功能,我似乎遇到了问题.当使用互联网应用程序项目模板和启用实体框架迁移等时.我试图在数据库上创建一个默认用户 – 使用自动迁移:

protected override void Seed(eManager.Web.Infrastructure.DepartmentDb context)
{            
   WebSecurity.InitializeDatabaseConnection("DefaultConnection","UserProfile","UserId","Email",false);

    if (!WebSecurity.UserExists("ahicks2"))
    {
        WebSecurity.CreateAccount("ahicks2","password",requireConfirmationToken:true);
    }

    if (!Roles.RoleExists("Admin"))
    {
        Roles.CreateRole("Admin");
    }
}

当我在包管理器中运行“Update-Database -verbose”时,我收到以下错误:

Running Seed method.
System.Web.Security.MembershipCreateUserException: The Provider encountered an unknown error.

at WebMatrix.WebData.SimpleMembershipProvider.CreateAccount(String
userName,String password,Boolean requireConfirmationToken)
at WebMatrix.WebData.WebSecurity.CreateAccount(String userName,Boolean requireConfirmationToken)

堆栈跟踪中的下一行是Configuration.Seed调用.在我的Web配置中,我使用以下设置为成员资格提供程序,以保证在我想要的数据库中创建表:

<membership defaultProvider="DefaultMembershipProvider">
    <providers>
        <clear/>
        <add name="DefaultMembershipProvider" 
             type="WebMatrix.WebData.SimpleMembershipProvider,WebMatrix.WebData,Version=2.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35"
             connectionStringName="DefaultConnection"/>

正确创建了数据库表,但代码落在了创建用户上.有人可以帮忙吗?我确信这很简单.我想测试这些功能 – 当然一个简单的答案是恢复使用asp.net 2.0的会员提供程序!但我想尝试让它发挥作用.任何帮助,将不胜感激.

编辑:顺便说一句,我试过这个:http://forums.asp.net/t/1598261.aspx/1并没有解决这个问题.

解决方法

答案就在表面上.
请查看有关此方法的MSDN页面:
WebSecurity.CreateAccount Method

它假设用户配置文件表中已存在匹配的用户信息(由userName表示). (要在成员资格表和用户配置文件表中创建新用户,请使用CreateUserAndAccount(String,String,Object,Boolean)方法.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读