AuthorizationStoreRoleProvider.CreateRole(String) Méthode

Définition

Ajoute un nouveau rôle au magasin de stratégies du Gestionnaire d'autorisations de rôles.

public:
 override void CreateRole(System::String ^ roleName);
public override void CreateRole (string roleName);
override this.CreateRole : string -> unit
Public Overrides Sub CreateRole (roleName As String)

Paramètres

roleName
String

Nom du rôle à créer.

Exceptions

roleName a la valeur null.

roleName est une chaîne vide.

  • ou - roleName contient une virgule.

Le applicationName configuré est introuvable.

  • ou - Le scopeName configuré est introuvable.

  • ou - Le runtime du Gestionnaire d'autorisations n'est pas installé sur le serveur.

L'attribut connectionStringName fait référence à une chaîne de connexion dans un fichier qui n'existe pas.

L'instance AuthorizationStoreRoleProvider est configurée avec un magasin de stratégies basé sur des fichiers et l'accès en lecture au fichier n'est pas autorisé au niveau de confiance actuel.

Exemples

L’exemple de code suivant crée un rôle dans le magasin de stratégies du gestionnaire d’autorisation. Pour obtenir un exemple de fichier Web.config qui active la gestion des rôles, consultez AuthorizationStoreRoleProvider.

<%@ 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>

Remarques

La CreateRole méthode est appelée par la Roles classe pour créer un rôle dans le magasin de données du gestionnaire d’autorisation spécifié dans le fichier de configuration de l’application ASP.NET (Web.config).

Les noms de rôles ne respectent pas la casse.

S’applique à

Voir aussi