刚学做一个有登录功能的网站,就好像是网上书店差不多,用户登陆后可以订书,加入订单和购买等,用户没登陆就只能看,不可以进行上面的操作,由于对这种网站不了解,我先问这几个没有什么水准的问题啊:
1、这种网站的原理是什么?
2、怎么判断用户是不是登陆了,用户登陆后要怎么保持一个登陆的状态,网上找了一下说用Cookies,但是我不太会用,也不了解。
3、数据库设计有什么不一样的地方吗?
4、我是用 Linq来做的。
5、最好能给一些小例子看看。
6、谢谢各位啊。登陆cookieslinq
1、这种网站的原理是什么?
2、怎么判断用户是不是登陆了,用户登陆后要怎么保持一个登陆的状态,网上找了一下说用Cookies,但是我不太会用,也不了解。
3、数据库设计有什么不一样的地方吗?
4、我是用 Linq来做的。
5、最好能给一些小例子看看。
6、谢谢各位啊。登陆cookieslinq
解决方案 »
- C# 的多线程Response问题,求高手帮忙
- 类似开心网的消息通知怎么怎么做的?
- 求一复杂性密码正则
- 一台服务器,如果有两个IP地址都可以访问到机器,说明机器装了两块网卡? 对吗?
- 麻烦了,大家有没有知道关于网络加密解密案例的论文网站
- 各位大哥帮帮小弟吧。
- DataGrid数据另存为Excel文件,为何只能保存一次?
- 怎样能得到客户端向服务器发送sql语句后执行的消息机制,然后返回到客户端页面
- 麻烦给些xsl/xml的资料好不?
- GridView中有关CheckBoxField的问题~~
- datatable合并后,sqldataadapter.update没有反应啊!
- MVC当中,如何进行参数传递和参数值的获取?
session比较容易丢失数据,是这样吗?
在登陆页面把用户名放入session后:session["loginname"]=name;(是这样写吗?)
然后在另外一个页面判断时是不是直接就这样写,不用写其他东西:
if(session[loginname]=="")
{
....
}
else
{
...
}
如果你指的是有登陆功能的网站,那原理很简单,client提交用户名密码,server验证通过即可登陆,否则不予登陆。其中会设计到并发等等一系列问题,如果你要往深入的了解的话。
2、怎么判断用户是不是登陆了,用户登陆后要怎么保持一个登陆的状态,网上找了一下说用Cookies,但是我不太会用,也不了解。
这个看你的业务逻辑及需求了,你可以存储到数据库中然后从数据库获取用户名密码来验证,保存一个状态你需要设置一个timeout,超时了自动下线(这个需要根据逻辑来判断),下线之后就会失去一些权限。
3、数据库设计有什么不一样的地方吗?
数据库设计会增加用户角色,权限的验证等等。
4、我是用 Linq来做的。
不明白,你指的是Linq to sql?
5、最好能给一些小例子看看。
例子可以google “MVC MSDN”
6、谢谢各位啊。
不用谢!
http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-1
登陆功能那些我是会做,但是登陆之后要怎么保持一个登陆的状态,就好像淘宝一样,你不按退出登陆的话他都是一直登陆着的,不知道说的清不清楚,就是这个我不知道怎么实现,就是用linq to sql
using System;
using System.Web;
using Model;/// <summary>
///LoginUser 的摘要说明
/// </summary>
public class LoginUser
{
private HttpCookie Cookie;
// 登录
public static void Login(LoginInfo user)
{
LoginUser login = new LoginUser();
login.WriteCookie("Ihdy", user.UserId);
login.WriteCookie("Ymxe", user.UserName);
login.WriteCookie("Dmdy", user.Passd);
login.WriteCookie("Xgng", user.Name);
} // 退出
public static void Logout()
{
LoginUser login = new LoginUser();
login.CookieRemoves("Ihdy");
login.CookieRemoves("Ymxe");
login.CookieRemoves("Dmdy");
login.CookieRemoves("Xgng");
} /// <summary>
/// 添加Cookie
/// </summary>
/// <param name="cookieName"></param>
/// <param name="obj"></param>
private void WriteCookie(string cookieName, object obj, bool Ext = true)
{
if (obj != null)
{
Cookie = new HttpCookie(cookieName);
Cookie.Value = Ext ? HttpUtility.UrlEncode(obj.ToString().Ext_GetEncrypt()) : obj.ToString();
HttpContext.Current.Response.Cookies.Add(Cookie);
}
} /// <summary>
/// 清除cookie
/// </summary>
/// <param name="cookeName"></param>
private void CookieRemoves(string cookeName)
{
HttpContext.Current.Response.Cookies.Remove(cookeName);
Cookie = new HttpCookie(cookeName);
Cookie.Expires = DateTime.Now.AddDays(-100);
HttpContext.Current.Response.Cookies.Add(Cookie);
} /// <summary>
/// 用户ID
/// </summary>
public static int UserId
{
get
{
if (HttpContext.Current.Request.Cookies["Ihdy"] != null)
{
return int.Parse(HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies["Ihdy"].Value).Ext_GetDecrypt());
}
else
{
return 0;
}
}
} /// <summary>
/// 用户名
/// </summary>
public static string UserName
{
get
{
if (HttpContext.Current.Request.Cookies["Ymxe"] != null)
{
return HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies["Ymxe"].Value).Ext_GetDecrypt();
}
else
{
return string.Empty;
}
}
} /// <summary>
/// 用户密码
/// </summary>
public static string Passd
{
get
{
if (HttpContext.Current.Request.Cookies["Dmdy"] != null)
{
return HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies["Dmdy"].Value).Ext_GetDecrypt();
}
else
{
return string.Empty;
}
}
} /// <summary>
/// 用户姓名
/// </summary>
public static string Name
{
get
{
if (HttpContext.Current.Request.Cookies["Xgng"] != null)
{
return HttpUtility.UrlDecode(HttpContext.Current.Request.Cookies["Xgng"].Value).Ext_GetDecrypt();
}
else
{
return string.Empty;
}
}
}
}
Ext_GetEncrypt()是封装的扩展方法
保存的cookie的名字是混写的
然后只要和你读取的时候的对象属性对应就ok了
==>没啥原理,你跟着做个小东西,你就明白是啥原理.2、怎么判断用户是不是登陆了,用户登陆后要怎么保持一个登陆的状态,网上找了一下说用Cookies,但是我不太会用,也不了解。
==>判断用户是否登录,无非就是耍个小招,用户名、密码验证正确后,然后将某个值,比如用户名或用户ID存储在某个长时间可以保存值的对象中而已。。
通常可以支持长时间保存的对象,有cookie,也有seesion
不过cookie是存储在客户端,容易被修改,所以如果采用cookie最好加密
存储在seesion就像上面说的。加不加密无所谓。。3、数据库设计有什么不一样的地方吗?
===》没啥不一样,你怎么存数据,表就怎么存用户数据
4、我是用 Linq来做的。
===>用啥linq to sql或EF或SqlHelper都没啥区别
5、最好能给一些小例子看看。
=====》多的要命,http://www.51aspx.com/ 去找吧6、谢谢各位啊。
===》不用谢,给分就行