问个简单的问题,一直困扰着我。。。痛苦中。

juxianxiang 2010-12-27 11:39:51
就是页面登陆问题。
1、到底用什么来管理用户登陆,我现在用的session来控制,但是自己不知道是不是这样用,我用的很简单,在每个页面都判断,session 的值是否存在,如果存在,则证明登陆,不存在则没登陆。但是貌似这样太蛮烦,每页都要写。
2、权限也不好判断,都是机械的方法,很不好。
自己没有规范,都是靠自己想,很多不对,能不能介绍一个好的规范,或者切实可行的方法。多谢。
...全文
117 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
脾气不坏 2010-12-27
  • 打赏
  • 举报
回复
登陆的话 多数用session 流量大的话 可以考虑session+cookie 我一般是把验证代码提出来 每个页面调用下
至于权限就不知道了 感觉一方面要权限划分设计好 我一般就是写成字符串 登录时直接拆分放到数组里
juxianxiang 2010-12-27
  • 打赏
  • 举报
回复
恩,有点明白了,自己知识还不系统,还要慢慢学。
有没有例子啊,各位大侠。
wyq29 2010-12-27
  • 打赏
  • 举报
回复
做个基类 每个页面继承一下就行了 不用每个都写

sunny_yu 2010-12-27
  • 打赏
  • 举报
回复
权限最好是继承父类判断,不用每个页面判断:如 public partial class BrandAdd : business.Web.UI.UserPage
在UserPage里做登录或权限判断。。
cr225cr225 2010-12-27
  • 打赏
  • 举报
回复
我是用Session。

你说的是后台管理吧。你可以写模板呀,里面写一次就行了,不必每个页面写了。

如果不用模板,你可以写个方法,每个页面调用一下就行了。


权限的话有很多方法,可以从最简单的到最复杂的,你能实现网站的功能就行了。
__还是少年 2010-12-27
  • 打赏
  • 举报
回复
用Form表单验证
  • 打赏
  • 举报
回复
你可以放到母版页里面,在母版页里面判断,然后其他页运用母版页,就可以了!
wangchangming 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wyq29 的回复:]

做个基类 每个页面继承一下就行了 不用每个都写
[/Quote]
平常都是这么做的,与用Form表单验证有什么区别;
比如我后台有个登录,然后注册用户又有一个登录,怎么用Form验证,比如:
<authentication mode= "Forms ">
<forms name= "Checked " loginUrl= "http://localhost/WebApplication1/login.aspx " protection= "All " timeout= "6000 " />
</authentication>
那会话失效后不是链接到同一页面了。
BATTLERxANGE 2010-12-27
  • 打赏
  • 举报
回复
用内置的用户成员资格吧,挺好的,具体的查看msdn
xiangaylian 2010-12-27
  • 打赏
  • 举报
回复
写个类,下面的代码可以参考:

/// <summary>
/// 用户操作超时
/// </summary>
public bool CheckTimeOut()
{
//指定登陆页面路径
string url = Request.ApplicationPath + "/Login.aspx";
string languageType = (string)Session["LanguageType"];
if (languageType==""||languageType==null)
{
languageType=PageCommon.GetRegisterKey();
}
string scriptStr = "<script language='JavaScript'>alert('操作超时,请重新登录!');window.parent.location.href='" + url + "';</script>";
if (Session["LoginName"] == null)//超时提示用户,转向登陆页面
{
Application.Lock();
if (Application["UserCount"] == null)
{
Application["UserCount"] = null;
}
else if ((int)Application["UserCount"]==0)
{
Application["UserCount"] = null;
}
else
{
Application["UserCount"] = (int)Application["UserCount"] - 1;
}
Application.UnLock();
//清除所有session值
Session.RemoveAll();
ScriptManager.RegisterStartupScript(this, this.GetType(), "alert", scriptStr, false);
return true;
}
else
{
Session["LanguageType"] = languageType;
string info = (string)Session["UserID"];
Session["UserID"] = info;
info = (string)Session["LevelEmployee"];
Session["LevelEmployee"] = info;
info = (string)Session["EmployeeID"];
Session["EmployeeID"] = info;
info = (string)Session["LoginName"];
Session["LoginName"] = info;
info = (string)Session["userType"];
Session["userType"] = info;
Session.Timeout = 200;
return false;
}
}
victory1124 2010-12-27
  • 打赏
  • 举报
回复
自己写个类就OK了

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧