ASP.NET中,怎样实现一个帐号只能登陆一次的功能?
在同一台机器上,一个帐号只能登陆一次,如果再使用相同的帐户登陆的话,就提示“该帐户再使用中”,用VB.NET怎么实现呢?
第二个问题就是怎样实现必须登陆才能访问除首页外的其他网页?如果是直接输入地址访问而没有经过登陆的话,就自动重定向到首页,这个功能用VB.NET又怎么实现呢?
问题点数:20、回复次数:20Top
1 楼jiang8282(雪山飞狐)回复于 2005-12-02 15:50:50 得分 0
登录时添加一个注册码,然后进行判断Top
2 楼deny_crack()回复于 2005-12-02 15:53:30 得分 0
可以说得更清楚一点吗??Top
3 楼ivee(ivee)回复于 2005-12-02 15:58:59 得分 20
1、用户登录后将用户名存在Applicatoin或Cache对象中,每次登录时检查是否该用户已经登录,登出时将用户名从Application或Cache中删除;
2、在Web.Config文件中设置FORM/WINDOWS/PASSPORT验证,并使用LOCATION配置授权/拒绝登录用户的文件夹位置。Top
4 楼clxxj(查无此人)回复于 2005-12-02 16:03:28 得分 0
1.application
2.
web.config中配置
<authorization>
<deny users="?"/>
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>Top
5 楼ywcyj(江南)回复于 2005-12-02 16:07:55 得分 0
用Cache,可以看孟子张的例子Top
6 楼ywcyj(江南)回复于 2005-12-02 16:14:11 得分 0
http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168
请注意退出时清除cache信息Top
7 楼jimmylin1000(小鱼)回复于 2005-12-02 16:23:18 得分 0
我讲一下思路吧.
1.你数据库中设置ip,user,state分别代表登入时的ip地址,用户信息,用户状态.每次用户进来你就记录下这几个值,发现相同的ip,user,且有该帐户在线(看状态),就不让他登进来.
2.在没有权限时不能看到的页,应该在底层写一个验证的方法,去验证该用户可不可以看该页.验证的方法可以通过数据库和SESSION来完成.Top
8 楼bwtgod()回复于 2005-12-02 16:45:34 得分 0
用cookie判断也可以。Top
9 楼bwtgod()回复于 2005-12-02 16:46:00 得分 0
用cookie判断也可以。Top
10 楼ocean413(地下党)回复于 2005-12-02 17:14:18 得分 0
实现一个帐号只能登陆一次的功能可以用临时表吧。
如果是直接输入地址访问而没有经过登陆的话,就自动重定向到首页,现在web.config将
验证方式改成
<authentication mode="Forms">
<forms name=".ASPXCOOKIE" loginUrl="index.aspx" protection="All" timeout="30" />
</authentication>
然后将授权策略改成
<authorization>
<deny users="?" /> <!-- 不允许匿名用户 -->
</authorization>
Top
11 楼chenghp(不登高山,不知天之高也;不临深溪,不知地之厚也。)回复于 2005-12-02 17:59:49 得分 0
第一个问题:在数据库中建立一个表online,表示用户是否在线,当用户在首页进行登陆时,对数据库进行查询,如果没有查到相关记录,表示尚未登陆,则将记录写到数据库中;如果有相关记录,则表示已经进行了登陆但没有退出,此时可以给出提示信息。
第二个问题:用上面的方法同样可以实现,在子页面的Page_Load事件中写入判断,如果用户信息在数据库,则表示已经登陆了,就可以浏览该页,如果没有查询到相关记录,表示用户尚未登陆就通过IE地址栏输入到该页的网址,此时,跳转到首页,让他登陆就可以了。Top
12 楼qwerttyy(今天也要快乐!)(每天回十帖)回复于 2005-12-02 18:46:49 得分 0
所有的方法都必须要用户退出Top
13 楼yefeihaha(学习)回复于 2005-12-02 21:43:18 得分 0
实现的不让同一个用户登陆
string test = "username";
private void Page_Load(object sender, System.EventArgs e)
{
if(Application["User_" + test] == null || Application["User_" + test].ToString() != Request.UserHostAddress)
Session["login"] = null;
else
Response.Write(Session["login"].ToString() + "已登录<br>");
}
private void Button1_Click(object sender, System.EventArgs e)
{
Session["login"] = test;
Application["User_" + test] = Request.UserHostAddress;
}Top
14 楼david8k(虽千万人而吾往矣)回复于 2005-12-02 22:13:08 得分 0
1.用数据库,麻烦
2.用Application
Top
15 楼spiderman111(www.dvpx.com(打造国内最大免费编程资源站))回复于 2005-12-02 22:44:34 得分 0
如果想长久保存数据用数据库,记录,登陆后做一标记
如果短时间的就SESSION或APPLICATIONTop
16 楼BearRui(孤熊 | 带你去看海!)回复于 2005-12-02 23:07:20 得分 0
在ASP.NET 中实现单点登录
作者:孟宪会 出自:【孟宪会之精彩世界】
http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168Top
17 楼firerains()回复于 2005-12-02 23:49:54 得分 0
用户非正常退出,怎么处理Top
18 楼jimu8130(火箭的未来在哪里?)回复于 2005-12-03 00:22:18 得分 0
所以还是用cookie来作咯
Top
19 楼jxjjljf(不用存储我不甘心啊)回复于 2005-12-03 14:40:02 得分 0
在数据库里设置一字段,开始默认为0,当第一次登陆就变成1表示登陆了,以后再有人登陆就可以去数据库里判断这个字段,为0就可以登陆,为1就不可以登陆.Top
20 楼califord(远方)回复于 2005-12-04 22:05:39 得分 0
请朋友们讲详细点好不?Top




