SqlRoleProvider.GetAllRoles Metod

Definition

Hämtar en lista över alla roller för programmet.

public:
 override cli::array <System::String ^> ^ GetAllRoles();
public override string[] GetAllRoles();
override this.GetAllRoles : unit -> string[]
Public Overrides Function GetAllRoles () As String()

Returer

String[]

En strängmatris som innehåller namnen på alla roller som lagras i databasen för ett visst program.

Undantag

Ett okänt fel uppstod vid kommunikation med databasen.

Exempel

I följande kodexempel används GetAllRoles metoden för att hämta listan över roller för ett program och binda resultatet till en System.Web.UI.WebControls.GridView kontroll. Ett exempel på en Web.config fil som aktiverar rollhantering finns i SqlRoleProvider.

Important

Det här exemplet innehåller en textruta som accepterar användarindata, vilket är ett potentiellt säkerhetshot. Som standard kontrollerar ASP.NET webbsidor att användarindata inte innehåller skript- eller HTML-element. Mer information finns i Översikt över skriptexploateringar.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

string[] rolesArray;

public void Page_Load(object sender, EventArgs args)
{
  if (!IsPostBack)
  {
    // Bind roles to GridView.

    rolesArray = Roles.GetAllRoles();
    RolesGrid.DataSource = rolesArray;
    RolesGrid.DataBind();
  }
}

public void CreateRole_OnClick(object sender, EventArgs args)
{
  string createRole = RoleTextBox.Text;

  try
  {
    if (Roles.RoleExists(createRole))
    {
      Msg.Text = "Role '" + Server.HtmlEncode(createRole) + "' already exists. Please specify a different role name.";
      return;
    }

    Roles.CreateRole(createRole);

    Msg.Text = "Role '" + Server.HtmlEncode(createRole) + "' created.";

    // Re-bind roles to GridView.

    rolesArray = Roles.GetAllRoles();
    RolesGrid.DataSource = rolesArray;
    RolesGrid.DataBind();
  }
  catch (Exception e)
  {
    Msg.Text = "Role '" + Server.HtmlEncode(createRole) + "' <u>not</u> created.";
    Response.Write(e.ToString());
  }

}

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Create Role</title>
</head>
<body>

<form runat="server" id="PageForm">
  <h3>Create a Role</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Role name: 

  <asp:TextBox id="RoleTextBox" runat="server" />

  <asp:Button Text="Create Role" id="CreateRoleButton"
              runat="server" OnClick="CreateRole_OnClick" />

  <br />

  <asp:GridView runat="server" CellPadding="2" id="RolesGrid" 
                Gridlines="Both" CellSpacing="2" AutoGenerateColumns="false" >
    <HeaderStyle BackColor="navy" ForeColor="white" />
    <Columns>
      <asp:TemplateField HeaderText="Roles" >
        <ItemTemplate>
          <%# Container.DataItem.ToString() %>
        </ItemTemplate>
      </asp:TemplateField>
    </Columns>
   </asp:GridView>
</form>

</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Web.Security" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">

Dim rolesArray() As String

Public Sub Page_Load(sender As Object, args As EventArgs)

  If Not IsPostBack Then
    ' Bind roles to GridView.

    rolesArray = Roles.GetAllRoles()
    RolesGrid.DataSource = rolesArray
    RolesGrid.DataBind()
  End If

End Sub

Public Sub CreateRole_OnClick(sender As Object, args As EventArgs)

  Dim createRole As String = RoleTextBox.Text

  Try
    If Roles.RoleExists(createRole) Then
      Msg.Text = "Role '" & Server.HtmlEncode(createRole) & "' already exists. Please specify a different role name."
      Return
    End If

    Roles.CreateRole(createRole)

    Msg.Text = "Role '" & Server.HtmlEncode(createRole) & "' created."

    ' Re-bind roles to GridView.

    rolesArray = Roles.GetAllRoles()
    RolesGrid.DataSource = rolesArray
    RolesGrid.DataBind()
  Catch
    Msg.Text = "Role '" & Server.HtmlEncode(createRole) & "' <u>not</u> created."
  End Try

End Sub

</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Sample: Create Role</title>
</head>
<body>

<form runat="server" id="PageForm">
  <h3>Create a Role</h3>

  <asp:Label id="Msg" ForeColor="maroon" runat="server" /><br />

  Role name: 

  <asp:TextBox id="RoleTextBox" runat="server" />

  <asp:Button Text="Create Role" id="CreateRoleButton"
              runat="server" OnClick="CreateRole_OnClick" />

  <br />

  <asp:GridView runat="server" CellPadding="2" id="RolesGrid" 
                Gridlines="Both" CellSpacing="2" AutoGenerateColumns="false" >
    <HeaderStyle BackColor="navy" ForeColor="white" />
    <Columns>
      <asp:TemplateField HeaderText="Roles" >
        <ItemTemplate>
          <%# Container.DataItem.ToString() %>
        </ItemTemplate>
      </asp:TemplateField>
    </Columns>
   </asp:GridView>
</form>

</body>
</html>

Kommentarer

Metoden GetAllRoles anropas av klassen Roles för att hämta en lista över alla roller i SQL Server-databasen som anges i ASP.NET-programmets konfigurationsfil (Web.config).

Gäller för

Se även