ASP.NET中,怎样实现一个帐号只能登陆一次的功能? 在同一台机器上,一个帐号只能登陆一次,如果再使用相同的帐户登陆的话,就提示“该帐户再使用中”,用VB.NET怎么实现呢? 第二个问题就是怎样实现必须登陆才能访问除首页外的其他网页?如果是直接输入地址访问而没有经过登陆的话,就自动重定向到首页,这个功能用VB.NET又怎么实现呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、用户登录后将用户名存在Applicatoin或Cache对象中,每次登录时检查是否该用户已经登录,登出时将用户名从Application或Cache中删除;2、在Web.Config文件中设置FORM/WINDOWS/PASSPORT验证,并使用LOCATION配置授权/拒绝登录用户的文件夹位置。 1.application2. web.config中配置 <authorization> <deny users="?"/> <!-- <allow users="[逗号分隔的用户列表]" roles="[逗号分隔的角色列表]"/> <deny users="[逗号分隔的用户列表]" roles="[逗号分隔的角色列表]"/> --> </authorization> 用Cache,可以看孟子张的例子 http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168请注意退出时清除cache信息 我讲一下思路吧.1.你数据库中设置ip,user,state分别代表登入时的ip地址,用户信息,用户状态.每次用户进来你就记录下这几个值,发现相同的ip,user,且有该帐户在线(看状态),就不让他登进来.2.在没有权限时不能看到的页,应该在底层写一个验证的方法,去验证该用户可不可以看该页.验证的方法可以通过数据库和SESSION来完成. 实现一个帐号只能登陆一次的功能可以用临时表吧。如果是直接输入地址访问而没有经过登陆的话,就自动重定向到首页,现在web.config将验证方式改成 <authentication mode="Forms"> <forms name=".ASPXCOOKIE" loginUrl="index.aspx" protection="All" timeout="30" /> </authentication>然后将授权策略改成 <authorization> <deny users="?" /> <!-- 不允许匿名用户 --> </authorization> 第一个问题:在数据库中建立一个表online,表示用户是否在线,当用户在首页进行登陆时,对数据库进行查询,如果没有查到相关记录,表示尚未登陆,则将记录写到数据库中;如果有相关记录,则表示已经进行了登陆但没有退出,此时可以给出提示信息。第二个问题:用上面的方法同样可以实现,在子页面的Page_Load事件中写入判断,如果用户信息在数据库,则表示已经登陆了,就可以浏览该页,如果没有查询到相关记录,表示用户尚未登陆就通过IE地址栏输入到该页的网址,此时,跳转到首页,让他登陆就可以了。 实现的不让同一个用户登陆 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;} 1.用数据库,麻烦2.用Application 如果想长久保存数据用数据库,记录,登陆后做一标记如果短时间的就SESSION或APPLICATION 在ASP.NET 中实现单点登录作者:孟宪会 出自:【孟宪会之精彩世界】http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168 所以还是用cookie来作咯 网站放到IIS上后,后台无法连接数据库的问题? 那种网站自定义模块布局是如何实现的? datagrid翻页为什么要再次绑定数据?有兴趣的朋友进来讨论. asp.net界面问题????? 一个处理页面的问题 问个sql连接的问题 如何使DATAGRID在页面显示数据行时不提行显示?? 奇怪,window.showModalDialog('ereZdiTantosya.aspx'); 打开的窗口,无论点任何按钮,都是弹出一个新窗口 请问百度语音回帖是怎么实现了,百度查不到资料! asp.net用什么编程工具比较好? 有关ASP.net播放窗体的问题,, 关于登录验证
2、在Web.Config文件中设置FORM/WINDOWS/PASSPORT验证,并使用LOCATION配置授权/拒绝登录用户的文件夹位置。
2.
web.config中配置
<authorization>
<deny users="?"/>
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>
1.你数据库中设置ip,user,state分别代表登入时的ip地址,用户信息,用户状态.每次用户进来你就记录下这几个值,发现相同的ip,user,且有该帐户在线(看状态),就不让他登进来.
2.在没有权限时不能看到的页,应该在底层写一个验证的方法,去验证该用户可不可以看该页.验证的方法可以通过数据库和SESSION来完成.
如果是直接输入地址访问而没有经过登陆的话,就自动重定向到首页,现在web.config将
验证方式改成
<authentication mode="Forms">
<forms name=".ASPXCOOKIE" loginUrl="index.aspx" protection="All" timeout="30" />
</authentication>
然后将授权策略改成
<authorization>
<deny users="?" /> <!-- 不允许匿名用户 -->
</authorization>
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;
}
2.用Application
作者:孟宪会 出自:【孟宪会之精彩世界】
http://dotnet.aspx.cc/ShowDetail.aspx?id=CF5FFABC-CFE1-4368-3C13-9B4FCD7C7168