wiki: 13078

Version 4 (modified by 13078, 10 years ago) ( diff )

--

'Имплементација на апликацијата CoDBIS во ASP.Net'

Во продолжение се дадени изворните кодови на страниците за регистрација, логирање, внесување лични информации, внесување активности и преглед на биографијата.

За регистрација на корисници

Register.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.AspNet.Membership.OpenAuth;


namespace CoDBIS.Account
{
    public partial class Register : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
            

        }

        protected void RegisterUser_CreatedUser(object sender, EventArgs e)
        {
            FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false);

            string continueUrl = RegisterUser.ContinueDestinationPageUrl;
            if (!OpenAuth.IsLocalUrl(continueUrl))
            {
                continueUrl = "AddInfo.aspx";
            }
            Response.Redirect(continueUrl);
           
        }
    }
}

Register.aspx

<%@ Page Title="Register" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="CoDBIS.Account.Register" %>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <hgroup class="title">
        <h1>Регистрирај се.</h1>
        <h2>Искористете ја формата подолу за да креирате нова корисничка сметка.</h2>
    </hgroup>

    <asp:CreateUserWizard runat="server" ID="RegisterUser" ViewStateMode="Disabled" OnCreatedUser="RegisterUser_CreatedUser" 
        CompleteSuccessText="Вашата корисничка сметка е успешно креирана." 
        DuplicateEmailErrorMessage="Е-маил адресата што ја внесовте е веќе во употреба. Ве молиме внесете друга е-меил адреса." 
        DuplicateUserNameErrorMessage="Ве молиме внесете друго корисничко име." 
        InvalidAnswerErrorMessage="Ве молиме внесете друг сигурносен одговор." 
        InvalidEmailErrorMessage="Ве молиме внесете валидна е-меил адреса." 
        InvalidPasswordErrorMessage="Должината на лозинката мора да е минимум: {0}. Потребни се алфа-нумерички карактери: {1}." 
        InvalidQuestionErrorMessage="Ве молиме внесете друго сигурносно прашање." 
        UnknownErrorMessage="Вашата корисничка сметка не е креирана. Ве молиме обидете се повторно.">
        <LayoutTemplate>
            <asp:PlaceHolder runat="server" ID="wizardStepPlaceholder" />
            <asp:PlaceHolder runat="server" ID="navigationPlaceholder" />
        </LayoutTemplate>
        <WizardSteps>
            <asp:CreateUserWizardStep runat="server" ID="RegisterUserWizardStep">
                <ContentTemplate>
                    <p class="message-info">
                        Лозинката мора да има повеќе од <%: Membership.MinRequiredPasswordLength %> карактери.
                    </p>

                    <p class="validation-summary-errors">
                        <asp:Literal runat="server" ID="ErrorMessage" />
                    </p>

                    <fieldset>
                        <legend>Registration Form</legend>
                        <ol>
                            <li>
                                <asp:Label runat="server" AssociatedControlID="UserName">Корисничко име</asp:Label>
                                <asp:TextBox runat="server" ID="UserName" />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
                                    CssClass="field-validation-error" ErrorMessage="Полето за корисничко име е задолжително." />
                            </li>
                            <li>
                                <asp:Label runat="server" AssociatedControlID="Email">Електронска адреса</asp:Label>
                                <asp:TextBox runat="server" ID="Email" TextMode="Email" />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
                                    CssClass="field-validation-error" ErrorMessage="Полето за електронска адреса е задолжително." />
                            </li>
                            <li>
                                <asp:Label runat="server" AssociatedControlID="Password">Лозинка</asp:Label>
                                <asp:TextBox runat="server" ID="Password" TextMode="Password" />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="Password"
                                    CssClass="field-validation-error" ErrorMessage="Полето за лозинка е задолжително." />
                            </li>
                            <li>
                                <asp:Label runat="server" AssociatedControlID="ConfirmPassword">Потврди ја лозинката</asp:Label>
                                <asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" />
                                <asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
                                    CssClass="field-validation-error" Display="Dynamic" ErrorMessage="Полето за потврда на електронската адреса е задолжително." />
                                <asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
                                    CssClass="field-validation-error" Display="Dynamic" ErrorMessage="Лозинките не се совпаѓаат." />
                            </li>
                        </ol>
                        <asp:Button runat="server" CommandName="MoveNext" Text="Регистрирај се" />
                    </fieldset>
                </ContentTemplate>
                <CustomNavigationTemplate />
            </asp:CreateUserWizardStep>
        </WizardSteps>
    </asp:CreateUserWizard>
</asp:Content>

За логирање на корисници

Login.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.AspNet.Membership.OpenAuth;
using System.Web.Security;

namespace CoDBIS.Account
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
                 
            RegisterHyperLink.NavigateUrl = "Register.aspx";
            var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
            if (!String.IsNullOrEmpty(returnUrl))
            {
            
               RegisterHyperLink.NavigateUrl += "?ReturnUrl=" + returnUrl;
               
            }
          }
       }
}

Login.aspx

<%@ Page Title="Login" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="CoDBIS.Account.Login" %>
<%@ Register Src="~/Account/OpenAuthProviders.ascx" TagPrefix="uc" TagName="OpenAuthProviders" %>

<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <hgroup class="title">
        <h1>Најавете се.</h1>
    </hgroup>
    <section id="loginForm">
        <h2>Искористете ги вашето корисничко име и лозинката за да се најавите на апликацијата.</h2>
        <asp:Login runat="server" DestinationPageUrl="~/Account/MyBiography.aspx" 
            ViewStateMode="Disabled" RenderOuterTable="false" 
            FailureText="Вашиот обид за најава е неуспешен. Ве молиме обидете се повторно." 
            PasswordRequiredErrorMessage="Лозинката е задолжителна." 
            UserNameRequiredErrorMessage="Корисничкото име е задолжително." 
            RememberMeText="Запомни ме следниот пат." LoginButtonText="Најави се">
            
            <LayoutTemplate>
                <p class="validation-summary-errors">
                    <asp:Literal runat="server" ID="FailureText" />
                </p>
                <fieldset>
                  
                    <legend>Log in Form</legend>
                    <ol>
                        <li>
                            <asp:Label runat="server" AssociatedControlID="UserName">Корисничко име</asp:Label>
                            <asp:TextBox runat="server" ID="UserName"/>
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" CssClass="field-validation-error" ErrorMessage="Полето за корисничко име е задолжително." />
                        </li>
                        <li>
                            <asp:Label runat="server" AssociatedControlID="Password">Лозинка</asp:Label>
                            <asp:TextBox runat="server" ID="Password" TextMode="Password"/>
                            <asp:RequiredFieldValidator runat="server" ControlToValidate="Password" CssClass="field-validation-error" ErrorMessage="Полето за лозинка е задолжително." />
                        </li>
                        <li>
                            <asp:CheckBox runat="server" ID="RememberMe" />
                            <asp:Label runat="server" AssociatedControlID="RememberMe" CssClass="checkbox">Запомни ме?</asp:Label>
                        </li>
                    </ol>
                    <asp:Button ID="btnLogin" runat="server" CommandName="Login" Text="Најави се"/>
                </fieldset>
            </LayoutTemplate>
        </asp:Login>
        <p>
            Ако немате корисничка сметка
            <asp:HyperLink runat="server" ID="RegisterHyperLink" ViewStateMode="Disabled">Регистрирајте се</asp:HyperLink>
            .</p>
    </section>

    </asp:Content>

Додавање лични податоци за корисникот

Addinfo.aspx.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CoDBIS.Account
{
    public partial class AddInfo : System.Web.UI.Page
    {
       
        protected void Page_Load(object sender, EventArgs e)
        {
            string korisnik = User.Identity.Name;
            lblUserName.Text = korisnik; 
        }

        protected void btnAdd_Click(object sender, EventArgs e)
        {
            
            string connString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

            SqlConnection conn = new SqlConnection(connString);

            conn.Open();
          
            string updateCommand = "UPDATE [Users] SET [PlaceOfBirth]=@PlaceOfBirth, [Gender]=@Gender, [DateOfBirth]=@DateOfBirth, [Position]=@Position, [FirstNameLastName]=@FirstNameLastName, [Employer]=@Employer, [EducationLevel]=@EducationLevel, [EducationInstitution]=@EducationInstitution WHERE ([UserName]=@UserName)";

            SqlCommand cmd = new SqlCommand(updateCommand, conn);

            cmd.Parameters.AddWithValue("@PlaceOfBirth", txtMesto.Text);        

            cmd.Parameters.AddWithValue("@Gender", rblPol.SelectedValue.ToString());
            cmd.Parameters.AddWithValue("@DateOfBirth", Convert.ToDateTime( txtDatum.Text));

            cmd.Parameters.AddWithValue("@Position", txtPozicija.Text);
            cmd.Parameters.AddWithValue("@FirstNameLastName", txtImePrezime.Text);
            cmd.Parameters.AddWithValue("@Employer", txtVrabotenVo.Text);
            cmd.Parameters.AddWithValue("@EducationLevel", txtObrazovanie.Text);
            cmd.Parameters.AddWithValue("@EducationInstitution", txtInstitucija.Text);
          
            cmd.Parameters.AddWithValue("@UserName", lblUserName.Text);

            cmd.ExecuteNonQuery();
            conn.Close();        

           lblMessage.Text = "Вашите податоци се успешно зачувани.";
           txtImePrezime.Text = "";
           txtMesto.Text = "";
           txtDatum.Text = "";
           txtObrazovanie.Text = "";
           txtInstitucija.Text = "";
           txtVrabotenVo.Text = "";
           txtPozicija.Text = "";
           

        }

        protected void BirthCalendar_SelectionChanged(object sender, EventArgs e)
        {
            txtDatum.Text = BirthCalendar.SelectedDate.ToString("dd/MM/yyyy");
        }

       
    }
}

Addinfo.aspx

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="AddInfo.aspx.cs" Inherits="CoDBIS.Account.AddInfo" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
    <style type="text/css">
        .auto-style1 {
            width: 100%;
        }
        .auto-style2 {
            width: 350px;
        }
        .auto-style3 {
            width: 150px;
        }
    </style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server">
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
      

    <h3>Дополнете ги следниве податоци за да ги комплетирате/ажурирате Вашите кориснички податоци или кликнете на копчето Продолжи ако сакате подоцна да ги внесете овие податоци:</h3>
    <asp:Label ID="lblUserName" runat="server" Text="" Visible="false"></asp:Label>
    <br />
    <h3 class="message-success"> <asp:Label ID="lblMessage" runat="server" Text=""></asp:Label></h3>
    <table class="auto-style1">
        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblImePrezime" runat="server" Text="Име и презиме: "></asp:Label></td>
            <td class="auto-style3">
                <asp:TextBox ID="txtImePrezime" runat="server"></asp:TextBox></td>
        </tr>

        <tr>
            <td class="auto-style2">

                &nbsp;</td>
            <td class="auto-style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblPol" runat="server" Text="Пол: "></asp:Label>
            </td>
            <td class="auto-style3">
                <asp:RadioButtonList ID="rblPol" runat="server" Height="50px" Width="139px">
                    <asp:ListItem Value="M" Selected="True">Машки</asp:ListItem>
                    <asp:ListItem Value="F">Женски</asp:ListItem>
                </asp:RadioButtonList></td>
        </tr>

        <tr>
            <td class="auto-style2">

                &nbsp;</td>
            <td class="auto-style3">
                &nbsp;</td>
        </tr>

        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblMesto" runat="server" Text="Место на раѓање: "></asp:Label></td>
            <td class="auto-style3">
                <asp:TextBox ID="txtMesto" runat="server"></asp:TextBox></td>
        </tr>

        <tr>
            <td class="auto-style2">

                &nbsp;</td>
            <td class="auto-style3">
                &nbsp;</td>
        </tr>
        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblDatum" runat="server" Text="Датум на раѓање: "></asp:Label></td>
            <td class="auto-style3">
                <asp:TextBox ID="txtDatum" runat="server"></asp:TextBox>
            </td>
            <td>
                <asp:Calendar ID="BirthCalendar" runat="server" OnSelectionChanged="BirthCalendar_SelectionChanged"></asp:Calendar>
            </td>
        </tr>
        <tr>
            <td class="auto-style2">

                &nbsp;</td>
            <td class="auto-style3">
                &nbsp;</td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblObrazovanie" runat="server" Text="Ниво на образование: "></asp:Label></td>
            <td class="auto-style3">
                <asp:TextBox ID="txtObrazovanie" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td class="auto-style2">

                &nbsp;</td>
            <td class="auto-style3">
                &nbsp;</td>
        </tr>
        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblInstitucija" runat="server" Text="Име на образовната институција: "></asp:Label></td>
            <td class="auto-style3">
                <asp:TextBox ID="txtInstitucija" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td class="auto-style2">

                &nbsp;</td>
            <td class="auto-style3">
                &nbsp;</td>
        </tr>
        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblVrabotenVo" runat="server" Text="Вработен во: "></asp:Label></td>
            <td class="auto-style3">
                <asp:TextBox ID="txtVrabotenVo" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td class="auto-style2">

                &nbsp;</td>
            <td class="auto-style3">
                &nbsp;</td>
        </tr>
        <tr>
            <td class="auto-style2">

                <asp:Label ID="lblPozicija" runat="server" Text="Работна позиција: "></asp:Label></td>
            <td class="auto-style3">
                <asp:TextBox ID="txtPozicija" runat="server"></asp:TextBox></td>
        </tr>
        <tr>
            <td class="auto-style2">&nbsp;</td>
            <td class="auto-style3">&nbsp;</td>
        </tr>
        <tr>
            <td class="auto-style2">&nbsp;</td>
            <td class="auto-style3">
                <asp:Button ID="btnAdd" runat="server" Text="Зачувај" OnClick="btnAdd_Click" />
            </td>
        </tr>
        <tr>
            <td class="auto-style2">&nbsp;</td>
            <td class="auto-style3"></td>
        </tr>
        <tr>
            <td class="auto-style2">&nbsp;</td>
            <td class="auto-style3">
                <asp:Button ID="Button2" runat="server" PostBackUrl="~/Account/MyBiography.aspx" Text="Продолжи" />
            </td>
        </tr>
    </table>
    <br />
    <br />


   

</asp:Content>

Inserting.aspx.cs-внес на нова активност за логираниот корисник и додавање на корисник кон веќе постоечка активност

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CoDBIS.Account
{
    public partial class Inserting : System.Web.UI.Page
       
    {
        string identity;

        protected void Page_Load(object sender, EventArgs e)

        {
            string korisnik = User.Identity.Name;
            lblUsername.Text = korisnik;

            string userId = Membership.GetUser().ProviderUserKey.ToString();
            lblUserID.Text = userId;

        }


        protected void btnInsert_Click(object sender, EventArgs e)

      {          
            
         string connString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

         SqlConnection conn = new SqlConnection(connString);

              conn.Open();

              string insertCommand1 = "insert into [Activities] (Name, Category, Place, Date) values (@Name, @Category, @Place, @Date)";
              insertCommand1 += "; SELECT SCOPE_IDENTITY() ; ";

              SqlCommand cmd1 = new SqlCommand(insertCommand1, conn);

              cmd1.Parameters.AddWithValue("@Name", txtName.Text);
              cmd1.Parameters.AddWithValue("@Category", txtCategory.Text);
              cmd1.Parameters.AddWithValue("@Place", txtPlace.Text);
              cmd1.Parameters.AddWithValue("@Date", Convert.ToDateTime(txtDate.Text));

              identity = cmd1.ExecuteScalar().ToString();
              lblActivityID.Text = identity;
            

              string insertCommand2 = "insert into [UsersOnActivities] (NameOfRole, UserID, ActivityID) values (@NameOfRole, @UserID, @ActivityID)";
              
              SqlCommand cmd2 = new SqlCommand(insertCommand2, conn);

              cmd2.Parameters.AddWithValue("@NameOfRole", txtRole.Text);
              cmd2.Parameters.AddWithValue("@UserID", lblUserID.Text);
              cmd2.Parameters.AddWithValue("@ActivityID", lblActivityID.Text);
              cmd2.ExecuteNonQuery();

              conn.Close();

              lblMessage.Text = "Активноста е успешно внесена во Вашата биографија.";
              txtName.Text = "";
              txtCategory.Text = "";
              txtPlace.Text = "";
              txtDate.Text = "";
              txtRole.Text = "";
  
        }
  

        protected void btnShow_Click(object sender, EventArgs e)
            
        {

            gvMe.Visible = true;
        }



        protected void btnAddMe_Click(object sender, EventArgs e)
        {
            foreach (GridViewRow row in gvMe.Rows)
            {
                if (((CheckBox)row.FindControl("CheckBox1")).Checked)
                {

                    int ActivityID = Convert.ToInt32(gvMe.DataKeys[row.RowIndex].Value);
                    lblExistingActivity.Text = ActivityID.ToString();


                    string connString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

                    SqlConnection conn = new SqlConnection(connString);

                    conn.Open();
                    string insertCommand3 = "insert into [UsersOnActivities] (NameOfRole, UserID, ActivityID) values (@NameOfRole, @UserID, @ActivityID)";

                    SqlCommand cmd3 = new SqlCommand(insertCommand3, conn);

                    cmd3.Parameters.AddWithValue("@NameOfRole", txtRoleOnExisting.Text);
                    cmd3.Parameters.AddWithValue("@UserID", lblUserID.Text);
                    cmd3.Parameters.AddWithValue("@ActivityID", lblExistingActivity.Text);
                    cmd3.ExecuteNonQuery();

                    conn.Close();
                    lblMessage.Text = "Успешно сте додадени на активноста.";
                }
                }

            
        }

    }
}

Inserting.aspx.cs-внес на нова активност за логираниот корисник и додавање на корисник кон веќе постоечка активност

Attachments (6)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.