using System;
using System.Web;
using System.IO;
using System.Net;
using System.Text;
namespace Linktone.MySite.Components
{
/// <summary><p></p></summary>
/// ValidateLogin 的摘要说明:由于要集成到Php制作的MainSite站点中,
/// 首要就是登录统一。
/// 那么我们用这类来保证浏览本站点的用户已经先登录了MainSite站点;
/// 我们的基本原理是:
/// 首先查看请求本站点的Request的Cookies,找到PHPSESSID,这就是标示当前访问者的SessionID;
/// 然后我们构造HttpRequest,以这个PhpSessionID向MainSite站点下的CheckLogin.php请求,
/// 看当前这个SessionID所代表的会话是否已经登录;
/// 如果登录成功,那么该页面将返回一个字符串:“blablabla”.
///
///
/// 作者:郑昀@掌上灵通 20050221
public class ValidateLogin
{
/// 要请求的验证页面的相对路径
private string m_strValidatePageRelateURL;
/// 从请求端传递过来的PHPSessionID
private string m_strPHPSessionID;
protected string m_strLastError;
private WebResponse m_webResponse;
public string ValidatePage
{
get { return m_strValidatePageRelateURL; }
set { m_strValidatePageRelateURL = value; }
}
public string LoginOperatorID
{
get { return m_strLoginOperatorID; }
set { m_strLoginOperatorID = value; }
}
/// <summary><p></p></summary>
///
///
/// 当前Web页面请求的绝对URL
/// 要请求的验证页面的相对路径
public ValidateLogin(string AbsoluteUri,
string ValidatePage,
string PHPSessionID)
{
m_strValidatePageRelateURL = ValidatePage;
m_strPHPSessionID = PHPSessionID;
/// 请求页面
RequestGetOperatorID(AbsoluteUri);
}
~ValidateLogin()
{
m_webResponse.Close();
}
public void RequestGetOperatorID(string strAbsoluteUri)
{
try
{
String Path;
Path = strAbsoluteUri;
/// 构建要访问的绝对路径
string strValidatePageURL = Path + m_strValidatePageRelateURL;
/// 构建请求的HttpWebRequest对象,并设置好Session
HttpWebRequest hwrRequest = (HttpWebRequest)WebRequest.Create(
strValidatePageURL);
hwrRequest.Method = "GET";
hwrRequest.Proxy = System.Net.WebProxy.GetDefaultProxy();
// allow auto redirects from redirect headers
hwrRequest.AllowAutoRedirect=true;
// 30 second timeout for request
hwrRequest.Timeout=(int) new TimeSpan(0,0,60).TotalMilliseconds;
// give the crawler a name.
hwrRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)";
hwrRequest.ContentType = "application/x-www-form-urlencoded";
CookieContainer cookieCon = new CookieContainer();
hwrRequest.CookieContainer = cookieCon;
hwrRequest.CookieContainer.SetCookies(new Uri(strValidatePageURL),
m_strPHPSessionID);
hwrRequest.KeepAlive = false;
hwrRequest.ProtocolVersion = HttpVersion.Version10;
/// WebRequest 实例上的 GetResponse 方法
/// 将来自客户端应用程序的请求发送到在 URI 中标识的服务器。
m_webResponse = hwrRequest.GetResponse();
/// GetResponse 和 EndGetResponse 方法返回一个 WebResponse 实例,
/// 该实例提供对服务器返回的数据的访问。
/// 因为此数据由 GetResponseStream 方法作为流提供给发出请求的应用程序,
/// 所以它可以在应用程序中的使用数据流的任何地方使用。
StreamReader sr = new StreamReader(
m_webResponse.GetResponseStream(),
Encoding.GetEncoding("GB2312"));
string sValidate = sr.ReadToEnd();
sr.Close();
/// 检验验证登陆的页面是否确认登陆了,否则直接引导到login.php页面
/// 调用者负责重定向
/// m_strLoginOperatorID = blabla;
}
catch (Exception eExcep)
{
m_strLastError = eExcep.Message;
}
return;
}
}
}
|
相关推荐
ASP.NET 会话状态是Web开发中用于保持用户在浏览多页应用时的状态信息的关键机制。由于HTTP协议的无状态特性,服务器无法自动记住不同请求之间的用户信息。为了解决这个问题,ASP.NET提供了会话状态功能,使得开发者...
2. **客户端获取预支付交易会话标识**:商户服务器将prepay_id通过自定义方式传递给客户端(App)。 3. **客户端发起支付请求**:客户端利用prepay_id,通过微信支付SDK发起支付请求。 4. **微信支付处理请求并返回...
这个程序的核心功能包括用户注册和登录,涉及到的关键技术主要包括ASP.NET Web Forms、页面生命周期管理、视图状态、服务器控件、数据验证、以及用户会话管理。 首先,ASP.NET Web Forms是ASP.NET框架的一部分,它...
总之,Asp.Net MVC的"记住我"功能通过Cookie实现了用户登录状态的持久化,为用户提供便利的同时,也需要注意确保安全性。在实际开发中,开发者需要权衡用户体验和安全性,合理配置Cookie的相关属性,并采取必要的...
本主题将深入探讨“从ASP到ASP.NET的会话状态管理”,讲解两者之间的异同以及迁移过程中如何处理会话状态。 首先,让我们回顾ASP(Active Server Pages)中的会话状态管理。在ASP中,会话状态主要通过Session对象...
4. **状态管理**:ASP.NET提供多种状态管理机制,如视图状态(ViewState)、隐藏字段、会话(Session)和应用程序(Application)状态,用于在页面间或用户会话间保存数据。 5. **MVC模式**:ASP.NET MVC是一种基于...
【ASP.NET大作业】是一个基于ASP.NET技术完成的项目,主要展示了如何利用.NET框架和ASP.NET Web应用程序开发平台来构建一个高效、用户友好的Web应用。这个大作业可能包括了数据库交互、文档管理等多个功能模块,旨在...
ASP.NET中的会话(Session)是Web开发中一个重要的概念,它允许开发者在用户的不同页面请求之间保持数据。本文将详细讲解ASP.NET中会话的应用,帮助你理解其工作机制。 一、什么是会话(Session)? 在Web应用程序...
综上所述,"asp.net简单用户登录系统"涉及到了ASP.NET的多个关键知识点,包括用户验证、表单身份验证、密码安全、会话管理、页面跳转、错误处理、角色管理、用户体验以及安全防范。通过这个项目,开发者可以深入理解...
// 用户认证成功后,可以在这里处理登录逻辑,例如保存用户信息或创建会话 // ... return Redirect("/Home/Index"); // 登录成功后的重定向页面 } } ``` 为了展示用户信息,你可能需要调用微信 API 获取用户...
如何使用 ASP.NET 实用工具加密凭据和会话状态连接字符串
在.NET和ASP.NET开发中,实现QQ登录、新浪微博登录以及网易微博登录的功能是常见的社交网络集成需求。这些功能使得用户可以使用他们在社交媒体平台上的账户直接登录到你的网站,提供了便捷的用户体验并可能增加用户...
【标题】"Web课件ASP/asp.net/jsp程序设计"涵盖了三种主要的Web开发技术:ASP(Active Server Pages)、ASP.NET以及JSP(JavaServer Pages)。这些技术都是用于构建动态网页和Web应用程序的重要工具。 ASP是微软在...
ASP.NET是微软开发的一种用于构建Web应用程序的框架,它提供了丰富的功能和强大的工具来帮助开发者创建动态、数据驱动的网站。在ASP.NET中,安全登录是任何web应用的基础,确保只有授权用户能够访问受保护的资源。...
4. Login.aspx:用户登录页面,用于验证用户凭据并实现会话管理。 5. Web.Config:这是ASP.NET应用程序的核心配置文件,包含了应用程序设置、数据库连接字符串、身份验证和授权规则等信息。 6. Region.aspx.cs、...
【ASP.NET从入门到实践】 ASP.NET是微软公司推出的一种用于构建Web应用程序的框架,它构建于.NET Framework之上,提供了全面的开发环境,用于创建高效、功能丰富的网站和Web应用程序。.NET Framework是一个完整的...
它允许开发者在用户浏览器会话期间保持特定数据,这对于处理用户登录、防止重复登录以及统计在线用户数等场景非常有用。本解决方案的核心就是巧妙地利用了`Session`对象的功能。 首先,我们来理解`Session`的基本...
常见的处理方法是,在用户登录时,判断此用户是否已经在 Application 中存在,如果存在就报错,不存在的话就加到 Application 中。Application 是所有 session 共有的,整个 web 应用程序唯一的一个对象。以下是引用...
在C# ASP.NET框架下,我们可以利用.NET的内置特性以及数据库管理来实现SSO。以下将详细介绍这两种实现方法。 ### 方法1:使用Cache和Session **Cache**是ASP.NET中用于存储全局性数据的一种机制,它可以存储大量的...
在 ASP.NET 2.0 开发环境中,确保用户的会话安全是非常重要的一个方面。本文将详细介绍如何通过 ASP.NET 2.0 实现防止同一用户同时登录的功能,并提供具体的代码示例。 #### 一、背景介绍 在实际的应用场景中,...