2010-11-03 2 views
2

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

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

Roles.CreateRole(string RoleName); 

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

Есть ли в коробке способ включения описания? или я должен сам это сделать?

ответ

4

Как вы, вероятно, обнаружили, что нет прямого способа получить описание. Это только потому, что он является членом 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'

+1

оценили, да и нет ... не из коробки способ сделать это ... также обратился к этому. –

Смежные вопросы