解决方案 »
- ASP.NET中,如何判断文本框里面的值是数字?
- 分不多。求高手帮助。急~~~~~~~~~~~~~~~~~。在线等
- 急……,各位关于windows2003取出时间格式的问题
- ASP.NET4.0后台登陆代码,登陆不成功!
- google map api
- 为什么无法加载页面??
- 在asp.net 的菜单栏中,生成项为什么不见了?
- 关于页面刷新的问题
- web考试系统的试题显示问题?如何出题
- 急切!如何捕获在datagrid和treeview中的单击和双击事件,并在服务器端处理?
- 关于web服务代码中写不了日志~~~
- 如果一个ASP.NET页面上除了一个Button服务器控件什么都没有时,单击该按钮,整个页面也会发送回服务器吗?
cookie用存储的 一般是 id 什么的 不是直接存储 用户
cookie 本身就加密了,而且还是在本地用户电脑上! 不然你就做点识别
//表头放AJAX管理索引
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
//用户名安装UpdatePanel
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="tbName" CssClass="TextBox" runat="server" MaxLength="50" Width="144px" BackColor="White"></asp:TextBox>//用户名设置</ContentTemplate>
</asp:UpdatePanel>//安放到哪里都可以但是只需安放一个<asp:CheckBox ID="cbxRemeberUser" runat="server" Checked="true" Text="记住用户名" />//设置记忆用户名
<asp:TextBox ID="tbPassword" CssClass="TextBox" runat="server" MaxLength="255" Width="143px" TextMode="Password" BackColor="White"></asp:TextBox>//设置登录密码
<asp:ImageButton ID="btnLogin" runat="server" Style="background-image: url(App_Themes/MRSOFTASPNET/Images/anniu1.gif);
width: 74px; height: 24px" OnClick="btnLogin_Click" ImageUrl="~/App_Themes/MRSOFTASPNET/Images/anniu1.gif" />//登录按钮设置
//cs页面设置
//加载设置Cookie记录用户名
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
if (!Object.Equals(Request.Cookies["UserName"], null))
{
//创建一个Cookie对象,记住用户名
HttpCookie readcookie = Request.Cookies["UserName"];
this.tbName.Text = readcookie.Value;
}
}
}//codego.net/tags/11/1/
//实例自动记住用户登录名功能
private void CreateCookie()
{
//创建一个Cookie对象
HttpCookie cookie = new HttpCookie("UserName");
//判断Checkbox控件是否被选中
if (this.cbxRemeberUser.Checked)
{
//将用户名存储到创建的Cookie对象中
cookie.Value = this.tbName.Text;
}
//获取创建的Cookie对象的过期时间
cookie.Expires = DateTime.MaxValue;
//将创建的Cookie对象添加到内部Cookie集合中
Response.AppendCookie(cookie);
}
//登录
protected void btnLogin_Click(object sender, ImageClickEventArgs e)
{
if (Page.IsValid == true)
{
HttpCookie cookie = Request.Cookies["CheckCode"];
//实例化命名空间中创建的公共类
MRSOFTASPNET.XmlBBS.User user = new User();
//定义一个数据阅读器,并调用公共类中的GetUserLogin方法获得用户的登录名及密码
SqlDataReader dr = user.GetUserLogin(tbName.Text.Trim(), tbPassword.Text.Trim());
bool isLogin = false;
//打开数据阅读器
if (dr.Read())
{
//调用命名空间中的UserInfo方法创建用户信息
MRSOFTASPNET.UserCommonOperation.UserInfo info = new UserInfo();
info.UserID = DataTypeConvert.ConvertToInt(dr["ID"].ToString());
info.UserName = tbName.Text;
info.LoginDate = DateTime.Now;
//判断用户名是否为空
if(object.Equals(Request.Cookies["UserName"],null))
{
//调用自定义方法CreateCookie()记住用户名
CreateCookie();
}
else
{
CreateCookie();
}
//保存登录信息到Session中
UserCommonOperation.StoreUserInfo(Session, info);
//标识登录成功
isLogin = true;
}
//关闭数据阅读器
dr.Close();
if (true == isLogin)
{
Server.Transfer("~/ProjectBBS/Index.aspx");
}
else
{
Response.Write("<script lanuage='javaScript'>alert('你输入的用户名称或者密码有误,请重新输入!');location='UserLogin.aspx'</script>");
}
}
}//如果确实需要记录密码那你自己改变一下即可!
cookie 本身就加密了,而且还是在本地用户电脑上! 不然你就做点识别cookie本身有加密?
自己不做特殊处理的话哪有加密?
我用js打出来的cookie没看到啥加密。我是说,假如用户猜到了是用这种方式实现免登陆的话,他知道别人的用户名不就可以自己用js改改cookie然后免登陆了?
比如,当名字为"userName"的cookie有值,且这个值在用户表里能查到时,就判断其通过,然后就设置session啥的,实现免登陆了。假如就是这种实现方式的话,那么你把用户名告诉我,我在其他电脑上修改这个cookie,就能登录这个账号。我自己也试过……