Friday, September 12, 2014

How to calculate total no. of user visiting your site.

Step 1: Create a New Project in Visual Studio 2008 as shown in below Figure:


Step 2: Select Asp.net Web Application template from the list of template and name it DemoApplication  as shown below:-


Step 3:- Now we need to add global.asax file. So right Click on your website name from Solution explorer -> Add New Item -> Global Application Class. It will be added in the root directory of your website with the name "Global.asax" as shown in  below two images.



Step 4: First Modify Default.aspx page as below:

Step 5:- Now open global.asax file
  •  From the above image we can see that Global class is inheriting from System.web.HttpApplication.
  •   It methods, properties, and events that are common to all application objects in an ASP.NET application
  •  Now in order to explore more about httpApplication class we are taking example of calculating total No. of User currently accessing a webpage.

Global.asax.cs Code:

protected void Application_Start(object sender, EventArgs e)
        {
            Application["UserCount"] = 0;
        }

        protected void Session_Start(object sender, EventArgs e)
        {
            Application.Lock();//locks access to httpapplicationstate variable to facilitate access synchronization
            Application["UserCount"] = Convert.ToInt32(Application["UserCount"]) + 1;
            Application.UnLock();//release the locks.
        }

        protected void Session_End(object sender, EventArgs e)
        {
            Application.Lock();//locks access to httpapplicationstate variable to facilitate access synchronization
            Application["UserCount"] = Convert.ToInt32(Application["UserCount"]) - 1;
            Application.UnLock();//release the locks
            // Session.Abandon();
        }

Global.asax code Explanation:-
Application_Start:- Here we can place code which runs on application start.Here we have declare Application variable Application[“UserCount”] which is initialized to zero to keep track of user who have currently opened a webpage.
Session_Start:- This method includes code that runs when a new session is started.In this method first we are locking an application object Application[“UserCount”] to facilitate access synchronization and then we are incrementing the variable value which implies that a new user has started a session and then releasing a lock,so that other users session data can be captured.
Session_End:- This method includes code that runs when a session is ended. In this method first we are locking an application object Application[“UserCount”] to facilitate access synchronization and then we are decrementing the variable value to indicate user session has ended and then releasing a lock, so that other users session data can be captured.


Step 6: Now run the application by pressing f5


Step 7:- Now open different browser and copy the url from the first browser and paste it in the new open browser.


By opening a new browser. It is creating a new session for the user on the same machine therefore it is incrementing an application object value.
Note:-We can also set session timeout property in the web.config file to timeout the session after a certain interval of time.






Wednesday, September 3, 2014

How to Send an Email in Asp.net using Gmail

Introduction:In this article you are going to learn how to send an Email in Asp.net using Gmail.

Step 1:Create a new Empty Web Application using Visual Studio.

Step 2:Right Click Application name in Server Explorer then Select Add then New Item.

Step 3:Select WebForm from the list of Templates and named it Email and Click Add.

Step 4: Now Open Email.aspx and copy below Code in the Form Tag.

 <center>
    <div>
        <table width="50%">
            <tr>
                <td style="width:2%;">
                </td>
                <td style="width:30%;">
                </td>
            </tr>
            <tr>
                <td>
             
                </td>
                <td>
                    <h2>How to send an Email in Aps.net using Gmail</h2>
                </td>
            </tr>
            <tr>
                <td>
                 
                </td>
                <td>
                    <asp:Label ID="lblMessage" runat="server" ForeColor="Green"></asp:Label>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lblTo" runat="server" Text="To"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtTo" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="rfv_To" runat="server" ErrorMessage="*" ControlToValidate="txtTo" ForeColor="Red"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lblMessageTitle" runat="server" Text="Title"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtTitle" runat="server"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="rfv_Title" runat="server" ErrorMessage="*" ControlToValidate="txtTitle" ForeColor="Red"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lblMessageBody" runat="server" Text="Body"></asp:Label>
                </td>
                <td>
                    <asp:TextBox ID="txtBody" runat="server" TextMode="MultiLine" Columns="15" Rows="5"></asp:TextBox>
                    <asp:RequiredFieldValidator ID="rfv_Body" runat="server" ErrorMessage="*" ControlToValidate="txtBody" ForeColor="Red"></asp:RequiredFieldValidator>
                </td>
            </tr>
            <tr>
                <td>
                 
                </td>
                <td>
                <asp:Button ID="btnSend" runat="server" Text="Send" onclick="btnSend_Click" />&nbsp;
                    <asp:Button ID="btnReset" runat="server" Text="Reset"  CausesValidation="false"
                        onclick="btnReset_Click" />
                </td>
            </tr>
        </table>
    </div>
    </center>

Step 5: Now open Email.aspx Code behind file by pressing f7 and copy below code in your Email Class.

Note: First You need to import below two namespaces in order to use mailmessage and networkCredentials classes in your application.

using System.Net;
using System.Net.Mail;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Reset();
                txtTo.Focus();
            }
        }

        private void Reset()
        {
            lblMessage.Text = "";
            txtTo.Text = "";
            txtTitle.Text = "";
            txtBody.Text = "";
        }

        protected void btnSend_Click(object sender, EventArgs e)
        {
            if (IsValid)
            {
                SendMail();
            }
        }

        private void SendMail()
        {
            MailMessage mail = new MailMessage();
            SmtpClient client = new SmtpClient();

            mail.From = new MailAddress("Your Gmail Id", "Your Name");
            mail.To.Add(txtTo.Text);

            mail.Subject = txtTitle.Text;

            mail.Body = txtBody.Text;

            client.Credentials = new NetworkCredential("Your Gmail ID", "Your Gmail Password");
            client.Port = 587;
            client.Host = "smtp.gmail.com";
            client.EnableSsl = true;
            client.Send(mail);

            Reset();
            lblMessage.Text = "Mail Sent.";

        }

        protected void btnReset_Click(object sender, EventArgs e)
        {
            Reset();
        }

Enjoy Sending Emails.

Happy Coding!!