.net中怎样 判断用户是否登陆

.net中怎样判断用户是否登陆.
我做了几个页面,想通过判断用户是否登陆来控制使用者权限,但不知道怎么做.请举个例子请明.谢谢.
我做的是一般的网站的会员登陆.就是想区别会员和一般游客的权限功能.并且,如果会员登陆了,在每个页面都会显示会员的相关信息.
如果用session的话常常会在登陆之后不久出现session信息丢失.这又怎么解决呢?

登陆的代码我会,我是想判断用户是否登陆来控制权限.

form验证怎么用?我没用过,可不可以给点例子.

对于你说的FORMS
首先
在你的web.config配置,验证类型及信息,如:
<authentication mode="Forms">
<forms name="landrise_aspnet" path="/" loginUrl="~/Login.aspx" timeout="20" defaultUrl="~/Default.aspx"/>
</authentication>

可用
Request.IsAuthenticated 判断是事登录

if (!Request.IsAuthenticated)
{
//未登录转到登录页面
FormsAuthentication.RedirectToLoginPage(); }

登录页面上,如果
if(通过帐号密码验证)
{
//username用户识标
//createPersistentCookie是否记住我,如果这个会true,将不会session过时,但下次也不必登录直接进入系统,可以用FormsAuthentication.SignOut();退出登录

FormsAuthentication.SetAuthCookie(username, createPersistentCookie);
//转到returnurl或配置的默认页
FormsAuthentication.RedirectFromLoginPage(username, createPersistentCookie);

可以通过HttpContext.Current.User.Identity.Name
或page类下
Context.User.Identity.Name
来取当前用户名

参考资料:http://hly8.com

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-25
在登录时,进行用户验证,即从数据库中读出是否存在该用户。示例:Select
*
from
User
where
userid
=
@userid
and
userpassword
=
@userpassword;
如果存在,将该用户放入Session中。Session["userid"]
=
用户名如果不存在,也可以跳转到2,3,但Session["userid"]
=
null;进行2,3页面后,在Page_Load函数中对Session进行一下检查if(Session["userid"]
==
null){
button1.Enable
=
false;//不可用或者是button1.Visible
=
false;//不可见}
第2个回答  2008-07-06
如果怕session丢失,可以用COOKIE,先判断COOKIE是否为空,再把COOKIE的值赋给session
读COOKIE:
if (System.Web.HttpContext.Current.Request.Cookies["admin"] != null)
{
System.Web.HttpContext.Current.Session["admin_id"] = System.Web.HttpContext.Current.Request.Cookies["admin"].Values["admin_id"];
System.Web.HttpContext.Current.Session["admin_username"] = System.Web.HttpContext.Current.Request.Cookies["admin"].Values["admin_username"];
}
else
{
System.Web.HttpContext.Current.Response.Redirect(login.aspx);
}
写COOKIE:
public void WriteAdminCookie(string userid,string username)
{
HttpCookie objCookie;
objCookie = new HttpCookie("admin");
System.Web.HttpContext.Current.Session["admin_id"] = userid;
System.Web.HttpContext.Current.Session["admin_username"] = username;
objCookie.Values["admin_id"] = userid;
objCookie.Values["admin_username"] = username;
System.Web.HttpContext.Current.Response.Cookies.Add(objCookie);
}
代码都给了,分都给俺吧!!
第3个回答  2008-07-04
// 作为唯一标识的Key,应该是唯一的,这可根据需要自己设定规则。
// 做为测试,这里用用户名和密码的组合来做标识;也不进行其它的错误检查。

// 生成Key
string sKey = UserName.Text + "_" + PassWord.Text;
// 得到Cache中的给定Key的值
string sUser = Convert.ToString(Cache[sKey]);
// 检查是否存在
if (sUser == null || sUser == String.Empty)
{
// Cache中没有该Key的项目,表名用户没有登录,或者已经登录超时
// 注意下面使用的TimeSpan构造函数重载版本的方法,是进行是否登录判断的关键。
TimeSpan SessTimeOut = new TimeSpan(0,0,System.Web.HttpContext.Current.Session.Timeout,0,0);
HttpContext.Current.Cache.Insert(sKey,sKey,null,DateTime.MaxValue,SessTimeOut,
System.Web.Caching.CacheItemPriority.NotRemovable,null);
Session["User"] = sKey;
// 首次登录,您可以做您想做的工作了。
Msg.Text="<h4 style='color:red'>嗨!欢迎您访问xxx祝您浏览愉快!</h4>";
}
else
{
// 在 Cache 中发现该用户的记录,表名已经登录过,禁止再次登录
Msg.Text="<h4 style='color:red'>抱歉,您好像已经登录了呀</h4>";
return;
}
第4个回答  2008-07-04
登陆后用个Session保存用户信息,在其它页面检查这个Session

登陆页面:
'登陆验证代码
session("username")=username '如果没有登陆就不执行这句话.

其它页面:
if session("username")="" then
response.write "你没有登陆"
response.end
end if

在ASP.NET中该如何用COOKIE判断用户是否登陆?我做用户登陆的系统,在登陆文件中为每个用户写入了一个Cookies,可为什么我在其它页面判断Cookies是否存在时系统会报错呢?

错误如下:
未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

行 61: //Response.Cookies["HJL"]["name"] = "hjl123";
行 62:
行 63: if(Request.Cookies["HJL"]["name"]==null ¦ ¦ Request.Cookies["HJL"]["name"]=="")
行 64: {
行 65: Response.Write ("您还未登陆");

我知道是因为Cookies不存在才会出现这种错误,如果COOKIES存在则很正常,但我该怎么在页面的顶端判断COOKIES是否存在呢?以此来验证用户是否登陆?

另外还有一个问题,ASP.NET我是初学,像上面提到这种验证用户是否登陆的代码在每一个页面都要有,曾经在ASP中用一个包含文件包含进来就可以,不用每个页面都写,在ASP.NET(C#)中该怎么完成这种功能呢?我是ASP.NET1.1版的!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网