读书人

用户登录的思路

发布时间: 2012-07-30 16:19:05 作者: rapoo

求一个用户登录的思路
在登录界面写:
//数据库判断用户名密码是否正确
然后:
IF(是正确的)
{
Session["LoginUser"] = this.txt_Uid.Text.Trim();
Response.Redirect("~/Default.aspx");
}
else
{
objJs.JsAlert("登录失败");

}

在需要用户登录的页面中:

C# code
if (Session["LoginUser"] != null)        {            Uname = Session["LoginUser"].ToString();        }        else        {            objJs.JsAlert("对不起,您没有登录");            Response.Redirect("~/login.aspx");        }        if (!IsPostBack)        {            this.Label1.Text = Uname + "! 您登录成功了!";        }


这样是最简单的了...大家在这基础上还有什么需要指点我的吗?



[解决办法]
应该没什么了,不过,要注意安全问题,考虑到是否要加密,解密!
不过,我认为你只是用Session["LoginUser"] 来判断还是不够严密!
可以多考虑一些!
[解决办法]
接受用户输入的时候
这样写没什么问题
如果还想要安全性的话
可以在登录者的用户名和密码存放到数据库的时候进行一个加密处理就行啦
[解决办法]
顶峰了。呵呵。
是ms顶峰了。一般程序的登陆如果都要很复杂的话.那就郁闷了。
[解决办法]
楼主是顶峰了,登录做这些已经足够了。
[解决办法]
基本的登录验证足够了,还可以这样改进一下
C# code
string uname = (string)Session["LoginUser"];if(uname == null){    //没有登陆,或超时     //退出或其他动作}else{    //验证成功     //更多动作}
[解决办法]
C# code
        protected void i_login_Click(object sender, ImageClickEventArgs e)        {            try            {                try                {                    判读用户是否存在                       判断用户是否启用                       判断密码                                           SetSession(Usersession);                    Application[Usersession.UserID.ToString()] = 登陆时间;//用于判读登陆超时                       Response.Redirect("index.aspx");                }                catch (Exception ex)                {                                    }            }            catch (Exception ex)            {            }        }
[解决办法]
只要是安全性要求不很高的网站 那样子已经足够了
否则的话 要对用户信息进行加密解密


[解决办法]
需要判断 重复登陆 的 情况

asp.net 实现 单点登录实现思路

利用Cache的功能,我们把用户的登录信息保存在Cache中,并设置过期时间为Session失效的时间,因此,一旦Session失效,我们的Cache也过期;而Cache对所有的用户都可以访问,因此,用它保存用户信息比数据库来得方便。


程序代码
string sKey = username.Text.ToString().Trim(); // 得到Cache中的给定Key的值
string sUser = Convert.ToString(Cache[sKey]); // 检查是否存在
if (sUser == null || sUser == String.Empty)
{

TimeSpan SessTimeOut = new TimeSpan(0, 0, System.Web.HttpContext.Current.Session.Timeout, 0, 0);//取得Session的过期时间
HttpContext.Current.Cache.Insert(sKey, sKey, null, DateTime.MaxValue, SessTimeOut, System.Web.Caching.CacheItemPriority.NotRemovable, null);//将值放入cache己方便单点登录
//成功登录
}
else if (Cache[sKey].ToString() == sKey)//如果这个账号已经登录
{
ClientScript.RegisterStartupScript(GetType(), "提示", "<script>alert('对不起,当前用户已经登录');</script>");
return;


}
else
{
Session.Abandon();//这段主要是为了避免不必要的错误导致不能登录
}
[解决办法]
为了安全起见,我一般都再加一层判断。

if (Session["LoginUser"] != null)
{
Uname = Session["LoginUser"].ToString();
}
else
{
objJs.JsAlert("对不起,您没有登录");
Response.Redirect("~/login.aspx");
}
//判断Session中的LoginUser是不是真的在数据库中存在,防止Session欺骗
if ((!IsPostBack)&& Users.IsExist(Uname))
{
this.Label1.Text = Uname + "! 您登录成功了!";

}
[解决办法]
挺好的啊,很对

读书人网 >asp.net

热点推荐