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

发布于 2024-09-30 09:59:43 字数 218 浏览 2 评论 0原文

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

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

Roles.CreateRole(string RoleName);

没有包含描述的重载。

有没有一种开箱即用的方式来包含描述?或者我应该自己去做这件事?

When adding a role (making use of asp.net's role provider), i cannot find a method to add a role including a description.

the asp.net Role table in SQL makes provision for a role description, however the only method available is:

Roles.CreateRole(string RoleName);

there is no overload to include a description.

Is there an out of the box way of including the description? or should i go about this myself?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小苏打饼 2024-10-07 09:59:43

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

如果代码看起来很混乱,我很抱歉。这是我在这里发表的第一篇文章 oO´

As you probably found out by now there's no direct way of getting hold of the description. It's only there because it's a member of the BaseProvider. Now it's fairly simple to make your own method for adding support for the description. You cannot extend the Roles class though but you can do something like this:

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();
  }
}

My apologies if the code looks messy. This is my first post here o.O´

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文