ایجاد کاربر در ASP.net Membership

دوشنبه 30 آذر 1394

در این مقاله قصد داریم چگونگی استفاده از ASP.net Membership را با ارائه یک مثال نشان دهیم و ایجاد دیتابیس برای آن را از طریق Aspnet_regsql بررسی کنیم. سیستم عضویت ASP.net ، ایجاد کاربر و مدیریت آن را بسیار راحت کرده است. در اینجا قصد داریم این سیستم را در یک پروژه بکار گیریم.

 ایجاد کاربر در  ASP.net Membership

در این مقاله قصد داریم چگونگی استفاده از  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  ایجاد شد.  دیتابیس دارای چندین جدول برای سیستم عضویت است.  به سراغ ویژوال استودیو رفته و برنامه را اجرا کنید. نتیجه به صورت زیر خواهد بود :

و دیتابیس به صورت زیر ایجاد شده است :

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید