ایجاد کاربر در ASP.net Membership
دوشنبه 30 آذر 1394در این مقاله قصد داریم چگونگی استفاده از ASP.net Membership را با ارائه یک مثال نشان دهیم و ایجاد دیتابیس برای آن را از طریق Aspnet_regsql بررسی کنیم. سیستم عضویت ASP.net ، ایجاد کاربر و مدیریت آن را بسیار راحت کرده است. در اینجا قصد داریم این سیستم را در یک پروژه بکار گیریم.
در این مقاله قصد داریم چگونگی استفاده از ASP.net Membership را با ارائه یک مثال نشان دهیم و ایجاد دیتابیس برای آن را از طریق Aspnet_regsql بررسی کنیم. سیستم عضویت ASP.net ، ایجاد کاربر و مدیریت آن را بسیار راحت کرده است. در اینجا قصد داریم این سیستم را در یک پروژه بکار گیریم.
ابتدا یک پروژه خالی در ویژوال استودیو ایجاد کنید.
یک فرم جدید با نام Login.aspx در آن ایجاد کنید.
کدهای زیر را درون این صفحه قرار دهید.
<form id="form1" runat="server"> <h3>Create New User</h3> <asp:Label id="Msg" ForeColor="maroon" runat="server" /> <br /> <table cellpadding="3" border="0"> <tr> <td></td> <td colspan="2"> <b>Sign Up for New User Account</b> </td> </tr> <tr> <td>UserName:</td> <td> <asp:TextBox ID="txtUserName" runat="server"/> </td> <td> <asp:RequiredFieldValidator ID="rqfUserName" runat="server" ControlToValidate="txtUserName" Display="Dynamic" ErrorMessage="Required" ForeColor="Red"/> </td> </tr> <tr> <td>Password:</td> <td> <asp:TextBox ID="txtPwd" runat="server" TextMode="Password"/> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtPwd" Display="Dynamic" ErrorMessage="Required" ForeColor="Red"/> </td> </tr> <tr> <td>Confirm Password:</td> <td> <asp:TextBox ID="txtCnfPwd" runat="server" TextMode="Password"/> </td> <td> <asp:RequiredFieldValidator id="PasswordConfirmRequiredValidator" runat="server" ControlToValidate="txtCnfPwd" ForeColor="red" Display="Dynamic" ErrorMessage="Required" /> <asp:CompareValidator id="PasswordConfirmCompareValidator" runat="server" ControlToValidate="txtCnfPwd" ForeColor="red" Display="Dynamic" ControlToCompare="txtPwd" ErrorMessage="Confirm password must match password." /> </td> </tr> <tr> <td>Email:</td> <td> <asp:TextBox ID="txtEmail" runat="server"/> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="txtEmail" Display="Static" ErrorMessage="Required" ForeColor="Red"/> </td> </tr> <tr> <td>Security Question:</td> <td> <asp:TextBox ID="txtQuestion" runat="server"/> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="txtQuestion" Display="Static" ErrorMessage="Required" ForeColor="Red"/> </td> </tr> <tr> <td>Security Answer:</td> <td> <asp:TextBox ID="txtAnswer" runat="server"/> </td> <td> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtAnswer" Display="Static" ErrorMessage="Required" ForeColor="Red"/> </td> </tr> <tr> <td></td> <td> <asp:Button ID="btnSubmit" runat="server" Text="Create User" onclick="btnSubmit_Click" /> </td> </tr> <tr> <td colspan="3"> <asp:Label ID="lblResult" runat="server" Font-Bold="true"/> </td> </tr> </table> </form>
بعد از آن برای دکمه submit کدها را به صورت زیر وارد کنید :
protected void btnSubmit_Click(object sender, EventArgs e) { MembershipCreateStatus createStatus; MembershipUser user = Membership.CreateUser(txtUserName.Text, txtPwd.Text, txtEmail.Text, txtQuestion.Text, txtAnswer.Text, true, out createStatus); switch (createStatus) { //This Case Occured whenver User Created Successfully in database case MembershipCreateStatus.Success: lblResult.ForeColor = Color.Green; lblResult.Text = "The user account was successfully created"; txtUserName.Text = string.Empty; txtEmail.Text = string.Empty; txtQuestion.Text = string.Empty; txtAnswer.Text = string.Empty; break; // This Case Occured whenver we send duplicate UserName case MembershipCreateStatus.DuplicateUserName: lblResult.ForeColor = Color.Red; lblResult.Text = "The user with the same UserName already exists!"; break; //This Case Occured whenver we give duplicate mail id case MembershipCreateStatus.DuplicateEmail: lblResult.ForeColor = Color.Red; lblResult.Text = "The user with the same email address already exists!"; break; //This Case Occured whenver we send invalid mail format case MembershipCreateStatus.InvalidEmail: lblResult.ForeColor = Color.Red; lblResult.Text = "The email address you provided is invalid."; break; //This Case Occured whenver we send empty data or Invalid Data case MembershipCreateStatus.InvalidAnswer: lblResult.ForeColor = Color.Red; lblResult.Text = "The security answer was invalid."; break; // This Case Occured whenver we supplied weak password case MembershipCreateStatus.InvalidPassword: lblResult.ForeColor = Color.Red; lblResult.Text = "The password you provided is invalid. It must be 7 characters long and have at least 1 special character."; break; default: lblResult.ForeColor = Color.Red; lblResult.Text = "There was an unknown error; the user account was NOT created."; break; } }
سپس رشته اتصال را به صورت زیر در Web.config بنویسید :
connectionStrings> <add name="dbconnection" connectionString="Data Source=.;Initial catalog=AspMembership;User ID=sa;Password=123"/> </connectionStrings>
و برای Provider عضویت کدها به صورت زیر می باشد:
<system.web> <membership> <providers> <clear/> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="dbconnection" applicationName="SampleApplication"/> </providers> </membership> <profile> <providers> <clear/> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="dbconnection" applicationName="SampleApplication"/> </providers> </profile> <roleManager enabled="false"> <providers> <clear/> <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="dbconnection" applicationName="SampleApplication"/> </providers> </roleManager> <compilation debug="true" targetFramework="4.5" /> <httpRuntime targetFramework="4.5" /> </system.web>
بعد از ایجاد و اجرای کدها ، باید جدول عضویت نیز ایجاد شود . برای این کار به مسیر زیر بروید و Aspnet_regsql.exe را اجرا کنید.
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
پنجره ای به صورت زیر برای ایجاد دیتابیس باز می شود.
بر روی Next کلیک کرده در صفحه بعد گزینه اول را انتخاب کنید.
در صفحه بعدی نام سرور و دیتابیس خود را وارد کنید.
در صفحه بعد Next و بعد از آن پایان را کلیک کنید.
دیتابیس در SQL server و جدول Membership در Asp.net ایجاد شد. دیتابیس دارای چندین جدول برای سیستم عضویت است. به سراغ ویژوال استودیو رفته و برنامه را اجرا کنید. نتیجه به صورت زیر خواهد بود :
و دیتابیس به صورت زیر ایجاد شده است :
- ASP.net
- 2k بازدید
- 5 تشکر