Kullanıcı adı bir eğik çizgi içeriyorsa, Rolls.RemoveUserFromRole öğesinin çalışmadığı MySQL'de bir hata var gibi görünüyor. Sorun burada https://bugs.mysql.com/bug.php?id=77264 ayrıntılı olarak açıklanmıştır, ancak herhangi bir iş bulmak için görünmüyor olabilir. UserName.Replace (@ "\", @ "\") kullanarak "\" den kaçmayı denedim, ancak bu bir fark yaratmıyor. Baska öneri?MySQL Roles.RemoveUserFromRol MySQL içinde çalışmıyor
0
A
cevap
0
Bu, MySQL rol sağlayıcısına giderilene kadar kendi başıma yuvarlanmaya başladım. İşte herkesin ihtiyacı varsa kod (nHibernate aromalı).
private static bool RemoveUserFromRole(string userId, string roleName)
{
var sess = NHibernateSession.GetDefaultSessionFactory().OpenSession();
const string query = @"
delete
from my_aspnet_usersinroles
where
roleId in (select id from my_aspnet_roles where name = :roleName)
and userId = :userId;
";
var result = sess.CreateSQLQuery(query)
.SetParameter("userId", userId)
.SetParameter("roleName", roleName)
.ExecuteUpdate();
return result >= 0;
}