SqlRoleProvider.CreateRole(String) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Agrega un nuevo rol a la base de datos de roles.
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)
Parámetros
- roleName
- String
Nombre del rol que se va a crear.
Excepciones
roleName es null.
roleName es una cadena vacía o contiene una coma.
O bien
roleName tiene más de 256 caracteres.
roleName ya existe en la base de datos.
O bien
Error desconocido al comunicarse con la base de datos.
Ejemplos
En el ejemplo de código siguiente se crea un nuevo rol en la base de datos. Para obtener un ejemplo de un archivo de Web.config que habilita la administración de roles, vea SqlRoleProvider.
Importante
Este ejemplo contiene un cuadro de texto que acepta la entrada del usuario, que es una amenaza de seguridad potencial. De forma predeterminada, ASP.NET páginas web validan que la entrada del usuario no incluye elementos HTML ni de script. Para obtener más información, consulte Información general sobre vulnerabilidades de seguridad de script.
<%@ 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>
Comentarios
La clase /> Roles llama al método CreateRole para crear un rol en la base de datos de SQL Server especificada en el archivo de configuración de la aplicación ASP.NET (Web.config).
La longitud máxima del nombre del rol es de 256 caracteres. Los nombres de rol no distinguen mayúsculas de minúsculas. No se permiten comas en nombres de rol.