Использование сеанса в глобальном масштабе для обновления счетчика входа пользователя в SQL - PullRequest
0 голосов
/ 03 мая 2011

Hallo,

Я относительно новичок в asp и sql, но создал веб-сайт, где пользователи могут войти в систему, и я хочу сохранить, сколько раз каждый пользователь вошел в систему.1004 * Я хочу использовать Global.asax для увеличения поля в моей базе данных sql каждый раз, когда пользователь заходит на веб-страницу, но не может заставить его работать.

При запускевеб-страница, но поле в базе данных не увеличивается.Я все делаю неправильно?

Global.asax пуст, пока я набрал в Global.asax.cs следующее:

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

namespace HerningBrand
{
public class Global : System.Web.HttpApplication
{
    void Application_Start(object sender, EventArgs e)
    {
    }

    void Application_End(object sender, EventArgs e)
    {
    }

    void Application_Error(object sender, EventArgs e)
    {
    }

    void Session_Start(object sender, EventArgs e)
    {
    //INCREMENT LoginCounter//
        //connect to the db
        SqlConnection conn = new SqlConnection(WebConfigurationManager.
                        ConnectionStrings["xxx_dbConnectionString"].ConnectionString);
        SqlCommand cmd = new SqlCommand("UPDATE aspnet_Users SET LoginCounter
                        =LoginCounter+1 WHERE UserName='Test'", conn);
        cmd.CommandType = CommandType.Text;
        //update where UserName is Test
        cmd.Parameters.AddWithValue("UserName", "Test");

        using (conn)
        {                
            conn.Open();   //open the connection                
            cmd.ExecuteNonQuery();   //send the query to increment the number
        }
    }

    void Session_End(object sender, EventArgs e)
    {    
    }

}

}

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Сеанс ASP.NET отделен от имени пользователя.Сеанс начинается, как только пользователь заходит на ваш сайт, прежде чем он сможет войти в систему.Если вы пытаетесь выполнить тестирование, войдя в систему с помощью уже открытого окна браузера, оно не будет работать;вам нужно закрыть свой браузер (и, возможно, удалить cookie с вашего сайта), чтобы начать новый сеанс.

0 голосов
/ 03 мая 2011

Session_Start вызывается при запуске сеанса.Как правило, это один раз в жизни окна браузера.Последовательные запросы происходят в одном и том же сеансе.

Функция, которую вы ищете - Application_BeginRequest.Вызывается один раз для каждой запрашиваемой страницы.

...