C # Программа для анализа соединения Http - PullRequest
0 голосов
/ 23 июня 2011

У меня есть сайт asp.net.Когда я создаю тестовую страницу с Thread.Sleep до загрузки страницы.Есть форма аутентификации для входа в систему.После часа ожидания страница автоматически выходит из системы.Поэтому я хочу посмотреть, в чем причина этого выхода из системы.Я планирую захватить все коммуникации HttpConnection с использованием кода C #.Я хочу видеть только тесную связь.Я запускаю веб-сайт на локальном компьютере с использованием Visual Studio 2005.

Не могли бы вы поделиться кодом для достижения этой функции?

Примечание. Я понимаю, что этого можно добиться с помощью таких инструментов, как tcpDump.Но в настоящее время я пытаюсь разработать код для одной только этой функции - чтобы увидеть причину закрытия соединения / выхода из системы.

ОБНОВЛЕНИЕ:

У меня есть следующий код.Но как мне решить мою задачу - как найти причину закрытия всех соединений / выйти из системы .Пожалуйста, помогите мне, так как я совершенно новичок в программировании сокетов.

 protected void Page_Load(object sender, EventArgs e)
{

    IPHostEntry host;
    string localIPAddress = "?";
    host = Dns.GetHostEntry(Dns.GetHostName());
    foreach (IPAddress ip in host.AddressList)
    {
        if (ip.AddressFamily == AddressFamily.InterNetwork)
        {
            localIPAddress = ip.ToString();
        }
    }

    System.Net.Sockets.Socket mySocket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, System.Net.Sockets.SocketType.Raw, System.Net.Sockets.ProtocolType.IP);
    mySocket.Bind(new System.Net.IPEndPoint(System.Net.IPAddress.Parse(localIPAddress), 0));
    mySocket.SetSocketOption(System.Net.Sockets.SocketOptionLevel.IP, System.Net.Sockets.SocketOptionName.HeaderIncluded, 1);

    byte[] inBytes = new byte[] { 1, 0, 0, 0 };
    byte[] outBytes = new byte[] { 0, 0, 0, 0 };
    mySocket.IOControl(System.Net.Sockets.IOControlCode.ReceiveAll, inBytes, outBytes);
}

1 Ответ

1 голос
/ 23 июня 2011

Я думаю, что вы ищете не в том месте ... При проверке подлинности с помощью форм выход из системы происходит из-за истечения срока действия файла cookie проверки подлинности.Если вы посмотрите на метод System.Web.Security.FormsAuthentication.SignOut() в .Net Reflector, вы увидите, что он выводит вас из системы, давая вам новый файл cookie, срок действия которого истекает в прошлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...