-
Asp.net 2.0
Posted on October 23rd, 2008 1 commentAsp.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
- Navigate to [drive:]\%windir%\Microsoft.NET\Framework\v2.0.50727 and run a utility called aspnet_regsql.exe
- Supply MSSQL credentials
- 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:
One response to “Asp.net 2.0”
-
cracko_gold December 9th, 2008 at 06:09
MUrag copy-paste man ni hehehe
Leave a reply



Recent Comments