• Asp.net 2.0

    Posted on October 23rd, 2008 admin 1 comment

    Asp.net 2.0 – ease in creating users and roles

    I assume that are in these following scenarios:

    1. You are paying a company to host your website (ex: www.hostony.com, www.bravehost.com)

    2. Your hosting is Windows-based (run by IIS)

    3. You have a MSSQL server instance database and you know these information: server name, username, password, database name

    Step 1: Creating MSSQL Provider table for membership and roles

    1. Navigate to [drive:]\%windir%\Microsoft.NET\Framework\v2.0.50727 and run a utility called aspnet_regsql.exe
    2. Supply MSSQL credentials
    3. Follow GUI prompts and finish the utility

    BINGO, you now have an empty Provider table

    Step 2: Configuring web.config xml file

    1. Navigate in your web control panel to open and edit we.config file

    2. Copy this code: change the one on italics

    <connectionStrings>

    <add name=”MySqlConnection” connectionString=”Data Source=server name;Initial Catalog=database name;User ID=username;Password=password” />

    </connectionStrings>

    <membership defaultProvider=”SqlProvider” userIsOnlineTimeWindow=”15″>

    <providers>

    <clear />

    <add

    name=”SqlProvider”

    type=”System.Web.Security.SqlMembershipProvider”

    connectionStringName=”MySqlConnection”

    applicationName=”MyApplication”

    enablePasswordRetrieval=”true”

    enablePasswordReset=”true”

    requiresQuestionAndAnswer=”false”

    requiresUniqueEmail=”false”

    passwordFormat=”Clear” />

    </providers>

    </membership>

    <roleManager defaultProvider=”MyRoleProvider”

    enabled=”true”

    cacheRolesInCookie=”true”

    cookieName=”.ASPROLES”

    cookieTimeout=”60″

    cookiePath=”/”

    cookieRequireSSL=”false”

    cookieSlidingExpiration=”true”

    cookieProtection=”All” >

    <providers>

    <clear />

    <add

    name=”MyRoleProvider”

    type=”System.Web.Security.SqlRoleProvider”

    connectionStringName=”MySqlConnection”

    applicationName=”SampleApplication” />

    </providers>

    </roleManager>

    Save the web.config file in the root directory {wwwroot}

    3. Create web pages for creating users, creating roles, associating roles to users

    Ex1. Creating users

    <asp:CreateUserWizard runat=”server” ID=”user1”></asp:CreateUserWizard>

    · this very simple code will run just fine

    Ex2. Creating roles

    Copy this code in the body of your asp form:

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

    <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” />

    <P>

    <asp:GridView runat=”server” CellPadding=”2″ id=”RolesGrid”

    Gridlines=”Both” CellSpacing=”2″ AutoGenerateColumns=”false” >

    <HeaderStyle BackColor=”navy” ForeColor=”white” />

    <Columns>

    <asp:TemplateField HeaderText=”Roles” runat=”server” >

    <ItemTemplate>

    <%# Container.DataItem.ToString() %>

    </ItemTemplate>

    </asp:TemplateField>

    </Columns>

    </asp:GridView>

    Exp3. Associating users to roles:

    Copy this code in the body of your asp form:

    <script runat=”server”>

    Dim rolesArray() As String

    Dim users As MembershipUserCollection

    Dim usersInRole() As String

    Public Sub Page_Load()

    Msg.Text = “”

    If Not IsPostBack Then

    ‘ Bind roles to ListBox.

    rolesArray = Roles.GetAllRoles()

    RolesListBox.DataSource = rolesArray

    RolesListBox.DataBind()

    ‘ Bind users to ListBox.

    users = Membership.GetAllUsers()

    UsersListBox.DataSource = users

    UsersListBox.DataBind()

    End If

    If Not RolesListBox.SelectedItem Is Nothing Then

    ‘ Show users in role. Bind user list to GridView.

    usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)

    UsersInRoleGrid.DataSource = usersInRole

    UsersInRoleGrid.DataBind()

    End If

    End Sub

    Public Sub AddUsers_OnClick(ByVal sender As Object, ByVal args As EventArgs)

    ‘ Verify that a role is selected.

    If RolesListBox.SelectedItem Is Nothing Then

    Msg.Text = “Please select a role.”

    Return

    End If

    ‘ Verify that at least one user is selected.

    If UsersListBox.SelectedItem Is Nothing Then

    Msg.Text = “Please select one or more users.”

    Return

    End If

    ‘ Create list of users to be added to the selected role.

    Dim newusers(UsersListBox.GetSelectedIndices().Length - 1) As String

    For i As Integer = 0 To newusers.Length - 1

    newusers(i) = UsersListBox.Items(UsersListBox.GetSelectedIndices(i)).Value

    Next

    ‘ Add the users to the selected role.

    Try

    Roles.AddUsersToRole(newusers, RolesListBox.SelectedItem.Value)

    ‘ Re-bind users in role to GridView.

    usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)

    UsersInRoleGrid.DataSource = usersInRole

    UsersInRoleGrid.DataBind()

    Catch e As Exception

    Msg.Text = e.Message

    End Try

    End Sub

    Public Sub UsersInRoleGrid_RemoveFromRole(ByVal sender As Object, ByVal args As GridViewCommandEventArgs)

    ‘ Get the selected user name to remove.

    Dim index As Integer = Convert.ToInt32(args.CommandArgument)

    Dim username As String = (CType(UsersInRoleGrid.Rows(index).Cells(0).Controls(0), DataBoundLiteralControl)).Text

    ‘ Remove the user from the selected role.

    Try

    Roles.RemoveUserFromRole(username, RolesListBox.SelectedItem.Value)

    Catch e As Exception

    Msg.Text = “An exception of type ” & e.GetType().ToString() & _

    ” was encountered removing the user from the role.”

    End Try

    ‘ Re-bind users in role to GridView.

    usersInRole = Roles.GetUsersInRole(RolesListBox.SelectedItem.Value)

    UsersInRoleGrid.DataSource = usersInRole

    UsersInRoleGrid.DataBind()

    End Sub

    </script>

    <h3>

    Role Membership</h3>

    <asp:Label ID=”Msg” ForeColor=”maroon” runat=”server” /><br />

    <table cellpadding=”3″ border=”0″>

    <tr>

    <td valign=”top”>

    Roles:</td>

    <td valign=”top”>

    <asp:ListBox ID=”RolesListBox” runat=”server” Rows=”8″ AutoPostBack=”true” /></td>

    <td valign=”top”>

    Users:</td>

    <td valign=”top”>

    <asp:ListBox ID=”UsersListBox” DataTextField=”Username” Rows=”8″ SelectionMode=”Multiple”

    runat=”server” /></td>

    <td valign=”top”>

    <asp:Button Text=”Add User(s) to Role” ID=”AddUsersButton” runat=”server” OnClick=”AddUsers_OnClick” /></td>

    </tr>

    <tr>

    <td valign=”top”>

    Users In Role:</td>

    <td valign=”top”>

    <asp:GridView runat=”server” CellPadding=”4″ ID=”UsersInRoleGrid” AutoGenerateColumns=”false”

    GridLines=”None” CellSpacing=”0″ OnRowCommand=”UsersInRoleGrid_RemoveFromRole”>

    <HeaderStyle BackColor=”navy” ForeColor=”white” />

    <Columns>

    <asp:TemplateField HeaderText=”User Name” >

    <ItemTemplate>

    <%# Container.DataItem.ToString() %>

    </ItemTemplate>

    </asp:TemplateField>

    <asp:ButtonField Text=”Remove From Role” ButtonType=”Link” />

    </Columns>

    </asp:GridView>

    </td>

    </tr>

    </table>

    You now have 3 pages necessary for administering your website

    Step3. Configure web.config for authorization

    Copy this code to your web.config file:

    <location path=”asp/create_roles.aspx”>

    <system.web>

    <authorization>

    <allow roles=”webmasters” />

    <deny users=”*”/>

    </authorization>

    </system.web>

    </location>

    CONGRATULATIONS.. YOU SHOULD NOW HAVE A BARE FULLY RUNNING MEMBERS AND ROLES DEFINED WEBSITE

    If not.. go send me an email flimh@yahoo.com

    Resources:

    www.msdn.com

     

    One response to “Asp.net 2.0”

    1. MUrag copy-paste man ni hehehe

    Leave a reply