我可以在添加新角色时设置角色描述

时间:2010-11-03 10:36:53

标签: c# asp.net roleprovider

添加角色(使用asp.net的角色提供程序)时,我找不到添加角色的方法,包括描述。

SQL中的asp.net Role表提供了角色描述,但唯一可用的方法是:

Roles.CreateRole(string RoleName);

包含说明没有重载。

是否包含描述的开箱即用方式?或者我应该自己解决这个问题?

1 个答案:

答案 0 :(得分:4)

正如您现在可能已经发现的那样,没有直接获取描述的方法。它只是因为它是BaseProvider的成员。现在,使用自己的方法添加对描述的支持非常简单。你不能扩展Roles类,但你可以这样做:

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'