2016-04-13 8 views
0

MySQLに、ユーザ名にスラッシュが含まれているとRoles.RemoveUserFromRoleが動作しないバグがあるようです。問題はここでは詳細にhttps://bugs.mysql.com/bug.php?id=77264で説明されていますが、私は回避策を見つけることはできません。私はuserName.Replace(@ "\"、@ "\")を使って "\"をエスケープしようとしましたが、違いはありません。助言がありますか?MySQLでRoles.RemoveUserFromRoleが動作しない

答えて

0

これは、MySQLのロールプロバイダで修正されるまで、私自身のロールアップが終了しました。誰かがそれを必要とするなら、ここにコード(nHibernate flavored)があります。

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; 

    } 
関連する問題