我正在尝试在Code First项目中使用SimpleMembership和MySql。这是我做的初始化器:
WebSecurity.InitializeDatabaseConnection("MyConnectionStringName", "UserProfile", "UserId", "UserName", false);
if (!Roles.RoleExists("Employee"))
{
Roles.CreateRole("Employee");
}
if (!WebSecurity.UserExists("Kurt"))
{
WebSecurity.CreateUserAndAccount("Kurt", "test");
Roles.AddUserToRole("Kurt", "Employee");
}
“AddUserToRole”出现以下异常:
MySql.Web.dll中出现'System.InvalidOperationException'类型的异常,但未在用户代码中处理
其他信息:未初始化UserTableName配置。
将用户添加到表“userprofile”(和“webpages_membership”),并将角色添加到“webpages_roles”。 “webpages_usersinroles”是空的。
Web.config中的提供程序(对于带有MySql的SimpleMembership):
<membership defaultProvider="MySqlSimpleMembershipProvider">
<providers>
<clear />
<add name="MySqlSimpleMembershipProvider" type="MySql.Web.Security.MySqlSimpleMembershipProvider,MySql.Web,Version=6.9.6.0,Culture=neutral,PublicKeyToken=c5687fc88969c44d" applicationName="/" description="MySQLdefaultapplication" connectionStringName="MyConnectionStringName" userTableName="UserProfile" userIdColumn="UserId" userNameColumn="UserName" autoGenerateTables="True" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="MySqlSimpleRoleProvider">
<providers>
<clear />
<add name="MySqlSimpleRoleProvider" type="MySql.Web.Security.MySqlSimpleRoleProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="MyConnectionStringName" applicationName="/" />
</providers>
</roleManager>
有谁知道哪个配置不在这里?这很奇怪,因为其他事情(创建用户和角色)工作正常,没有例外。
提前致谢!
更新
我已将membershipprovider中的属性添加到rolemanager。
<roleManager defaultProvider="MySqlSimpleRoleProvider">
<providers>
<clear />
<add name="MySqlSimpleRoleProvider" type="MySql.Web.Security.MySqlSimpleRoleProvider, MySql.Web, Version=6.9.6.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" connectionStringName="SamandarService_DB" applicationName="SamandarService" userTableName="UserProfile" userIdColumn="UserId" userNameColumn="Name" />
</providers>
</roleManager>
现在出现另一个例外:
无法添加或更新子行:外键约束失败(
ticket
。webpages_usersinroles
,CONSTRAINTfk_RoleId
FOREIGN KEY(RoleId
)参考webpages_roles
(RoleId
))
该角色已正确添加到角色表中,但由于一个神秘的原因,MySql无法引用该角色。
如何解决此问题?