代码之家  ›  专栏  ›  技术社区  ›  stoic Kobus Kleynhans

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

  •  2
  • stoic Kobus Kleynhans  · 技术社区  · 14 年前

    当添加角色(使用ASP.NET的角色提供程序)时,我找不到添加包含描述的角色的方法。

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

    Roles.CreateRole(string RoleName);
    

    不存在包含描述的重载。

    是否有现成的方法包括描述?还是我自己去?

    1 回复  |  直到 14 年前
        1
  •  4
  •   HSBallina    14 年前

    正如你现在可能发现的那样,没有直接的方法来获得描述。因为它是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();
      }
    }
    

    如果密码看起来很乱,我很抱歉。这是我在这里的第一个帖子