一個(gè)簡(jiǎn)單的asp.net 單點(diǎn)登錄實(shí)現(xiàn)
以下是實(shí)現(xiàn)的效果圖:
首先上圖的點(diǎn)擊火車(chē)訂票鏈接,就會(huì)打開(kāi)http://學(xué)生信息平臺(tái)網(wǎng)站/LoginToTrainSite.asa頁(yè)面。
LoginToTrainSite.asa頁(yè)面的大致代碼如下:
<%
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"
//根據(jù)用戶(hù)session獲取用戶(hù)名和密碼
%>
<html>
<body>
<div style='display:none'>
<form name="myForm" method="post" action="http://火車(chē)訂票網(wǎng)站/LoginFromOtherSite.aspx">
<input type="hidden" name="UserName" value="<%=userName%>" />
<input type="hidden" name="UserPwd" value="<%=userPwd%>" />
</form>
</div>
</body>
</html>
<script language="javascript">
myForm.submit();
</script> LoginFromOtherSite.aspx.cs頁(yè)面的代碼大致如下:
using (SqlConnection conn = new SqlConnection(SqlHelper.StudentConnectionString))
{
string sql = "select t_stuUser.ID, t_stuUser.stuNumber, t_stuUser.userPassword, t_stuUser.realName, v_stuUser.className, v_stuUser.departmentName "
+ "from t_stuUser,v_stuUser where t_stuUser.stuNumber=@UserName and t_stuUser.userPassword=@UserPwd and v_stuUser.stuNumber=@UserName";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlParameter pUserName = cmd.Parameters.Add("@UserName", SqlDbType.VarChar, 30);
SqlParameter pUserPwd = cmd.Parameters.Add("@UserPwd", SqlDbType.VarChar, 150);
pUserName.Value = Request.Form["UserName"];
pUserPwd.Value = Request.Form["UserPwd"];
conn.Open();
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (sdr.Read())
{
Session["UserID"] = Convert.ToString(sdr["ID"]);
Session["StuName"] = Convert.ToString(sdr["realName"]);
Session["StuNumber"] = Convert.ToString(sdr["stuNumber"]);
Session["Academe"] = Convert.ToString(sdr["departmentName"]);
Session["ClassName"] = Convert.ToString(sdr["className"]);
Response.Redirect("MyOrder.aspx"); // 登錄成功
}
else
{
Response.Redirect("Default.aspx"); //登錄失敗,用戶(hù)名或密碼錯(cuò)誤
}
}
最后LoginFromOtherSite.aspx頁(yè)面處理完兩個(gè)網(wǎng)站都是用戶(hù)處于登錄狀態(tài)了。不過(guò)我想知道用這種方法哪里不安全,
可能會(huì)產(chǎn)生什么安全問(wèn)題,希望有知道的朋友能告訴我下。
- 一款經(jīng)典的ajax登錄頁(yè)面 后臺(tái)asp.net
- asp.net jQuery Ajax用戶(hù)登錄功能的實(shí)現(xiàn)
- asp.net BasePage類(lèi)+Session通用用戶(hù)登錄權(quán)限控制
- asp.net+Ajax校驗(yàn)用戶(hù)是否存在的實(shí)現(xiàn)代碼
- ASP.NET jQuery 實(shí)例18 通過(guò)使用jQuery validation插件校驗(yàn)DropDownList
- ASP.NET jQuery 實(shí)例14 在ASP.NET form中校驗(yàn)時(shí)間范圍
- asp.net中MD5 16位和32位加密函數(shù)
- asp.net下常用的加密算法MD5、SHA-1應(yīng)用代碼
- asp.net實(shí)現(xiàn)md5加密
- ASP.NET MVC結(jié)合JavaScript登錄、校驗(yàn)和加密
相關(guān)文章
asp.net Urlrewriter在虛擬主機(jī)上的使用方法
在網(wǎng)上看到,很多朋友在asp.net中做urlrewrite,用的是HttpHandle Server.Transfer的方法。其實(shí)這種方法是錯(cuò)誤的。2009-12-12
GridView導(dǎo)出Excel實(shí)現(xiàn)原理與代碼
使用GridView來(lái)展示數(shù)據(jù)庫(kù)表,幾乎沒(méi)對(duì)GridView的格式做什么設(shè)定,從配置文件中加載SQL,跑出數(shù)據(jù)就直接綁定到GridView,接下來(lái)介紹導(dǎo)出Excel的功能感興趣的朋友可以參考下2013-01-01
asp.net中js和jquery調(diào)用ashx的不同方法分享
asp.net中js和jquery調(diào)用ashx的不同方法分享,需要的朋友可以參考一下2013-06-06
VS2005打開(kāi)VS2008項(xiàng)目的2種方法(vs2005怎么打開(kāi)2008)
vs2008支持.net3.5,而vs2005支持.net2.0,所以使用vs2005打開(kāi)vs2008的項(xiàng)目,要確定你的項(xiàng)目是.net2.0的,下面介紹二種VS2005打開(kāi)VS2008項(xiàng)目的方法2014-01-01
ASP.NET Core快速入門(mén)之環(huán)境篇
這篇文章主要介紹了ASP.NET Core快速入門(mén)之環(huán)境篇,對(duì)跨平臺(tái)框架感興趣的同學(xué),可以參考下2021-04-04
微軟發(fā)布的Data Access Application Block的使用代碼
微軟發(fā)布的Data Access Application Block的使用代碼...2007-04-04
ASP.NET中如何實(shí)現(xiàn)回調(diào)
這篇文章主要為大家詳細(xì)介紹了ASP.NET中如何實(shí)現(xiàn)回調(diào)操作,感興趣的小伙伴們可以參考一下2016-04-04
在ASP.Net Core中使用Lamar的全過(guò)程
這篇文章主要給大家介紹了關(guān)于在ASP.Net Core中使用Lamar的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
ASP.NET 廣告控件AdRotator的使用方法與實(shí)例
廣告控件是asp.net中一個(gè)獨(dú)有的東西,他可以利用asp.net來(lái)生成廣告控件所需的xml文檔,然后再利用AdRotator來(lái)調(diào)用廣告xml文件,根據(jù)我們的參考進(jìn)行顯示2013-08-08

