2010-11-03 112 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