Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MembershipCreateUserException:用户名已在使用中_C#_Asp.net_Asp.net Mvc 4_Simplemembership - Fatal编程技术网

C# MembershipCreateUserException:用户名已在使用中

C# MembershipCreateUserException:用户名已在使用中,c#,asp.net,asp.net-mvc-4,simplemembership,C#,Asp.net,Asp.net Mvc 4,Simplemembership,我自己创建了简单的成员资格表,这样我就能够更新用户名字段(如果您让它自动创建,则无法执行此操作) 当我运行这行代码时,我不断收到错误消息,说明用户名已经存在。奇怪的是,表中没有同名的用户名,每次注册都会使用相同的用户名。这可能与我自己创建表有关,但我看不出哪里有这个问题 它会将它添加到我的UserProfile表(称为UserSecurity),但不会将用户包括在成员表中 编辑:上一行使用webpages_成员表。我需要它来使用我的UserMembership表 编辑:上一行使用webpages

我自己创建了简单的成员资格表,这样我就能够更新用户名字段(如果您让它自动创建,则无法执行此操作)

当我运行这行代码时,我不断收到错误消息,说明用户名已经存在。奇怪的是,表中没有同名的用户名,每次注册都会使用相同的用户名。这可能与我自己创建表有关,但我看不出哪里有这个问题

它会将它添加到我的UserProfile表(称为UserSecurity),但不会将用户包括在成员表中

编辑:上一行使用webpages_成员表。我需要它来使用我的UserMembership表

编辑:上一行使用webpages_成员表。我需要它来使用我的UserMembership表

如果希望Simple Membership Provider使用不同于默认表的表,则需要更改
WebSecurity.InitializeDatabaseConnection
指向的表

在解决方案资源管理器中,转到Filters->
InitializeSimpleMembershipAttribute.cs
,改用此选项:

WebSecurity.InitializeDatabaseConnection("MyContext", "TableToPointTo", 
"UserIdColumn", "UserNameColumn", autoCreateTables: true);

你能把完整的密码寄出去吗?也许这是个愚蠢的问题,但您是否验证了您的模型正在填充,并且.UserName不是空字符串(或null)?我刚刚发现,我在代码中显示的行使用的是webpages\u成员资格,而不是我自己的成员资格表。如何使用我的成员资格表?用户名不为null,模型正在填充,或者根据此链接可以在sql server中添加成员资格表。我认为您错过了在dbI中添加asp.net成员资格表。我有autoCreateTables:但是是false。现在它使用我的UserSecurity而不是UserProfile表。但是它仍然继续使用其他表来表示角色和成员身份。那么您希望您的UserSecurity表存储所有与帐户相关的数据、角色等吗?不,我被告知需要手动创建simplemembership表,以便允许用户在UserProfile表中更改其用户名。阅读我的另一个问题,我试图这样做,我可能错了,但我不认为手动创建这些表是允许用户更改用户名的解决方案。您最好编写自己的会员资格提供者。SimpleMembershipProvider从ExtendedMembershipProvider继承。这里有一个指向MVC4使用的SimpleMembershipProvider源代码的链接,看看更改密码的方法,它们可能会给您一些指导。
WebSecurity.InitializeDatabaseConnection("MyContext", "TableToPointTo", 
"UserIdColumn", "UserNameColumn", autoCreateTables: true);