一个简单的asp.net 单点登录实现
2015-01-27 10:57
816 查看
上次做了学校的火车订票系统,那边要求要从学生信息平台直接点过来就是登录状态,不用在重新登录。学生信息平台原来是用asp做的,而火车订票系统是asp.net做的。两个网站的学生信息调用的是同一个数据库。
以下是实现的效果图:
首先上图的点击火车订票链接,就会打开http://学生信息平台网站/LoginToTrainSite.asa页面。
LoginToTrainSite.asa页面的大致代码如下:
最后LoginFromOtherSite.aspx页面处理完两个网站都是用户处于登录状态了。不过我想知道用这种方法哪里不安全,
可能会产生什么安全问题,希望有知道的朋友能告诉我下。
以下是实现的效果图:
首先上图的点击火车订票链接,就会打开http://学生信息平台网站/LoginToTrainSite.asa页面。
LoginToTrainSite.asa页面的大致代码如下:
<% Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Response.CacheControl = "no-cache" Response.AddHeader "Pragma", "No-Cache" //根据用户session获取用户名和密码 %> <html> <body> <div style='display:none'> <form name="myForm" method="post" action="http://火车订票网站/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页面的代码大致如下: 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"); //登录失败,用户名或密码错误 } }
最后LoginFromOtherSite.aspx页面处理完两个网站都是用户处于登录状态了。不过我想知道用这种方法哪里不安全,
可能会产生什么安全问题,希望有知道的朋友能告诉我下。
相关文章推荐
- 一个简单的asp.net 单点登录实现
- asp.net mvc 简单实现一个账号只能在一个地方登录
- 一个简单的asp.net 单点登录实现
- asp.net基业控制登录简单实现
- 一个简单的AJAX实现,基于C#的ASP.Net,包括服务器端的程序代码
- 单点登录在ASP.NET上的简单实现
- 单点登录在ASP.NET上的简单实现
- 【网络转载】Asp.net使用XPath实现一个简单的RSS阅读器
- 一个简单的ASP.NET +ACCESS 登录
- Asp.Net MVC3 简单入门第一季(五) 通过Asp.Net MVC的区域功能实现将多个MVC项目部署到一个站点
- .net实例:单点登录在ASP.NET上的简单实现(1)
- 用ASP.NET实现一个简单的计算器(适合入门者)
- 一个简单的AJAX实现,基于C#的ASP.Net,包括服务器端的程序代码
- 单点登录在ASP.NET上的简单实现
- 单点登录在ASP.NET上的简单实现
- 单点登录在ASP.NET上的简单实现
- 单点登录在ASP.NET上的简单实现
- 我的一个ASP.net简单查询实现
- 一个简单的用户登录接口asp实现
- XPO学习(6)----实现一个简单的留言薄(ASP.NET)