Могу ли я установить описание роли при добавлении новой роли - PullRequest
2 голосов
/ 03 ноября 2010

При добавлении роли (с использованием поставщика ролей asp.net) я не могу найти способ добавить роль, включающую описание.

таблица ролей asp.net в SQL предусматривает описание роли, однако единственный доступный метод:

Roles.CreateRole(string RoleName);

нет перегрузки для включения описания.

Есть ли готовый способ включения описания? или мне самому заняться этим?

1 Ответ

4 голосов
/ 10 декабря 2010

Как вы, наверное, уже поняли, нет прямого способа получить описание. Это только там, потому что это член BaseProvider. Теперь довольно просто создать собственный метод добавления поддержки описания. Вы не можете расширить класс ролей, но можете сделать что-то вроде этого:

public static class RolesEx
{
  public static void CreateRole(string roleName, string description)  
  {  
    Roles.CreateRole(roleName);

    var c = new SqlConnection("connString");  
    var cmd = c.CreateCommand();
    cmd.CommandText =
      string.Format(
        "UPDATE aspnet_Roles SET Description = '{0}' WHERE ApplicationId = (SELECT ApplicationId FROM aspnet_Applications WHERE LoweredApplicationName = '{1}') AND  LoweredRoleName = '{2}'",
        description, Roles.ApplicationName.ToLower(), roleName.ToLower());
    cmd.CommandType = CommandType.Text;
    c.Open();
    var i = cmd.ExecuteNonQuery();
    c.Close();
  }
}

Приношу свои извинения, если код выглядит грязным. Это мой первый пост здесь o.O´

...