2010-11-03 114 views
2

添加角色(使用asp.net的角色提供者)时,我无法找到添加角色(包括描述)的方法。可以在添加新角色时设置角色描述

SQL中的asp.net角色表规定了一个角色的描述,但唯一可用的方法是:

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

赞赏,是的......没有开箱即用的方式......也转向了这一点。 – 2011-01-04 13:25:27