AuthorizationStoreRoleProvider.CreateRole Method (String)
Adds a new role to the role authorization-manager policy store.
Assembly: System.Web (in System.Web.dll)
Parameters
- roleName
-
Type:
System.String
The name of the role to create.
| Exception | Condition |
|---|---|
| ArgumentNullException | roleName is null. |
| ArgumentException | roleName is an empty string. -or- roleName contains a comma. |
| ProviderException | The configured applicationName was not found. -or- The configured scopeName was not found. -or- The authorization-manager runtime is not installed on the server. |
| FileNotFoundException | The connectionStringName attribute references a connection string to a file that does not exist. |
| HttpException | The AuthorizationStoreRoleProvider instance is configured with a file-based policy store, and read access to the file is not allowed at the current trust level. |
The CreateRole method is called by the Roles class to create a role in the authorization-manager data store specified in the ASP.NET application's configuration file (Web.config).
Role names are not case sensitive.
The following code example creates a new role in the authorization-manager policy store. For an example of a Web.config file that enables role management, see 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>
Available since 2.0