中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 其他
在ASP.NET中创建安全的web站点(3)
作者:佚名 时间:2007-09-04 15:28 出处:csdn 责编:月夜寒箫
              摘要:在ASP.NET中创建安全的web站点(3)

读者看完上面的代码之后一定想问CCommonDB是哪里来的东东,这是我编写的一个类,用来处理用户登录信息的,如果成功则把相关信息写入session、Cookie和SQL数据库,同时跳到default.aspx页面。具体如下:

            

CCommonDB.cs



namespace secure.Components

{

public class CCommonDB : CSql

{

public CCommonDB() : base() { }



public string AuthenticateUser(

System.Web.SessionState.HttpSessionState objSession, // Session Variable

System.Web.HttpResponse objResponse, // Response Variable

string email, // Login

string password, // Password

bool bPersist // Persist login

)

{

int nLoginID = 0;

int nLoginType = 0;



// Log the user in

Login(email, password, ref nLoginID, ref nLoginType);



if(nLoginID != 0) // Success

{

// Log the user in

System.Web.Security.FormsAuthentication.SetAuthCookie(nLoginID.ToString(),

bPersist);



// Set the session varaibles

objSession["loginID"] = nLoginID.ToString();

objSession["loginType"] = nLoginType.ToString();



// Set cookie information incase they made it persistant

System.Web.HttpCookie wrapperCookie = new System.Web.HttpCookie("wrapper");

wrapperCookie.Value = objSession["wrapper"].ToString();

wrapperCookie.Expires = DateTime.Now.AddDays(30);



System.Web.HttpCookie lgnTypeCookie = new System.Web.HttpCookie("loginType");

lgnTypeCookie.Value = objSession["loginType"].ToString();

lgnTypeCookie.Expires = DateTime.Now.AddDays(30);



// Add the cookie to the response

objResponse.Cookies.Add(wrapperCookie);

objResponse.Cookies.Add(lgnTypeCookie);



return "/candidate/default.aspx";

}

case 1: // Admin Login

{

return "/admin/default.aspx";

}

case 2: // Reporting Login

{

return "/reports/default.aspx";

}

default:

{

return string.Empty;

}

}

}

else

{

return string.Empty;

}

}



/// <summary>

/// Verifies the login and password that were given

/// </summary>

/// <param name="email">the login</param>

/// <param name="password">the password</param>

/// <param name="nLoginID">returns the login id</param>

/// <param name="nLoginType">returns the login type</param>

public void Login(string email, string password, ref int nLoginID,

ref int nLoginType)

{

ResetSql();



DataSet ds = new DataSet();



// Set our parameters

SqlParameter paramLogin = new SqlParameter("@username", SqlDbType.VarChar, 100);

paramLogin.Value = email;



SqlParameter paramPassword = new SqlParameter("@password", SqlDbType.VarChar, 20);

paramPassword.Value = password;





Command.CommandType = CommandType.StoredProcedure;

Command.CommandText = "glbl_Login";

Command.Parameters.Add(paramLogin);

Command.Parameters.Add(paramPassword);



Adapter.TableMappings.Add("Table", "Login");

Adapter.SelectCommand = Command;

Adapter.Fill(ds);



if(ds.Tables.Count != 0)

{

DataRow row = ds.Tables[0].Rows[0];



// Get the login id and the login type

nLoginID = Convert.ToInt32(row["Login_ID"].ToString());

nLoginType = Convert.ToInt32(row["Login_Type"].ToString());

}

else

{

nLoginID = 0;

nLoginType = 0;

}

}

}



abstract public class CSql

{

private SqlConnection sqlConnection; // Connection string

private SqlCommand sqlCommand; // Command

private SqlDataAdapter sqlDataAdapter; // Data Adapter

private DataSet sqlDataSet; // Data Set

public CSql()

{

sqlConnection = new SqlConnection(ConfigurationSettings.AppSettings

["ConnectionString"]);

sqlCommand = new SqlCommand();

sqlDataAdapter = new SqlDataAdapter();

sqlDataSet = new DataSet();



sqlCommand.Connection = sqlConnection;

}



/// <summary>

/// Access to our sql command

/// </summary>

protected SqlCommand Command

{

get { return sqlCommand; }

}



/// <summary>

/// Access to our data adapter

/// </summary>

protected SqlDataAdapter Adapter

{

get { return sqlDataAdapter; }

}



/// <summary>

/// Makes sure that everything is clear and ready for a new query

/// </summary>

protected void ResetSql()

{

if(sqlCommand != null)

{

sqlCommand = new SqlCommand();

sqlCommand.Connection = sqlConnection;

}

if(sqlDataAdapter != null)

sqlDataAdapter = new SqlDataAdapter();



if(sqlDataSet != null)

sqlDataSet = new DataSet();

}



/// <summary>

/// Runs our command and returns the dataset

/// </summary>

/// <returns>the data set</returns>

protected DataSet RunQuery()

{

sqlDataAdapter.SelectCommand = Command;



sqlConnection.Open();

sqlConnection.Close();



sqlDataAdapter.Fill(sqlDataSet);



return sqlDataSet;

}

}

   

来源链接:http://blog.csdn.net/tielu0144/archive/2007/02/05/1502894.aspx

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有