我想对我的项目里的每一页都验证用户是否登录了,该怎么验证?还要像以前asp那样每一页里都验证session吗?在asp.net里有没有更好的方法

nuaagolden 2004-08-27 09:59:56
我想对我的项目里的每一页都验证用户是否登录了,该怎么验证?还要像以前asp那样每一页里都验证session吗?在asp.net里有没有更好的方法?
...全文
516 27 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
37350792 2004-08-31
  • 打赏
  • 举报
回复
一个很简单的方法!

1.在一个SessionCheck.aspx文件中写好检测方法
2.在每个页页中调用<!--#Include File =SessionCheck.aspx -->

注:在ASP系统中使用的,不知在.NET中是否能用

给分吧!
zairwolfi 2004-08-28
  • 打赏
  • 举报
回复
a




_____________________________________________________________________________

该问题已经结贴 ,得分记录: zairwolfc (500)
possible_Y 2004-08-27
  • 打赏
  • 举报
回复
直接用asp.net集成的form验证啊
changlin365 2004-08-27
  • 打赏
  • 举报
回复
mark
iiboy 2004-08-27
  • 打赏
  • 举报
回复
学习中....
速马 2004-08-27
  • 打赏
  • 举报
回复
我也反对Session,性能杀手啊,而看看现在的.Text,AspNetForum,没有一个使用Session
验证用户还有一个办法:使用HttpModule
rickjelly2004 2004-08-27
  • 打赏
  • 举报
回复
http://www.developerfusion.com/utilities/convertvbtocsharp.aspx
libaconnet 2004-08-27
  • 打赏
  • 举报
回复
你也可以用Cookie嘛!
yfhfh 2004-08-27
  • 打赏
  • 举报
回复
然后在你要登陆的页面中加两个Function

Private Function CreateAuthTicket(ByVal userName As String, ByVal roles As String, _
ByVal persistent As Boolean) As FormsAuthenticationTicket
Return New FormsAuthenticationTicket(1, userName, DateTime.Now, _
DateTime.Now.AddMinutes(60), persistent, roles)
End Function
Private Function CreateAuthCookie(ByVal authTicket As FormsAuthenticationTicket) As HttpCookie
Return New HttpCookie(FormsAuthentication.FormsCookieName, _
FormsAuthentication.Encrypt(authTicket))
End Function


如果你点击登陆按钮,你就会到数据库中寻找这个用户和密码,如果存在就写

Dim authTicket As FormsAuthenticationTicket
Dim authCookie As HttpCookie

authTicket = CreateAuthTicket(txtUserID.Text, CStr(viewstate("roles")), False)
authCookie = CreateAuthCookie(authTicket)
HttpContext.Current.Response.Cookies.Add(authCookie)

不存在就EXIT SUB

vb的啊,有没有帮忙翻译成c#,谢谢
vb的啊,有没有帮忙翻译成c#,谢谢
aoeiuvcom 2004-08-27
  • 打赏
  • 举报
回复
我不反对Session

因为如果真的在线人数过万,那么,服务器也不会是一般的服务器!

Session有什么问题:

1、内存消耗--可以忽略
2、查找定位--我不知道是怎么找的,但相信会是专门处理的,服务器能吃的消

yfhfh 2004-08-27
  • 打赏
  • 举报
回复
然后在你要登陆的页面中加两个Function

Private Function CreateAuthTicket(ByVal userName As String, ByVal roles As String, _
ByVal persistent As Boolean) As FormsAuthenticationTicket
Return New FormsAuthenticationTicket(1, userName, DateTime.Now, _
DateTime.Now.AddMinutes(60), persistent, roles)
End Function
Private Function CreateAuthCookie(ByVal authTicket As FormsAuthenticationTicket) As HttpCookie
Return New HttpCookie(FormsAuthentication.FormsCookieName, _
FormsAuthentication.Encrypt(authTicket))
End Function


如果你点击登陆按钮,你就会到数据库中寻找这个用户和密码,如果存在就写

Dim authTicket As FormsAuthenticationTicket
Dim authCookie As HttpCookie

authTicket = CreateAuthTicket(txtUserID.Text, CStr(viewstate("roles")), False)
authCookie = CreateAuthCookie(authTicket)
HttpContext.Current.Response.Cookies.Add(authCookie)

不存在就EXIT SUB

vb的啊,有没有帮忙翻译成c#,谢谢
MaDaHai 2004-08-27
  • 打赏
  • 举报
回复
學習
menuvb 2004-08-27
  • 打赏
  • 举报
回复
http://dev.csdn.net/develop/article/18/18958.shtm

反对session,如果在线人数过万,你还将每个用户的信息都保存到session,性能肯定会受到打击
nuaagolden 2004-08-27
  • 打赏
  • 举报
回复
看到目前各位高手的回答,总结如下:
1.可以用session实现,实现发放可以是写一公共方法放在模块中或者写一公共类,但是还是要在每个页面都要加一定的代码,虽然可以尽量的简化;
2.有的回答与问题有点偏离,但还是感谢各位的支持;
革命尚未成功,同志仍需努力!
rickjelly2004 2004-08-27
  • 打赏
  • 举报
回复
先在WEB。CONFIG中写
<authentication mode="Forms">
<forms name=".ASPXFORMSDEMO" loginUrl="login.aspx"
protection="All" path="/" timeout="1" />
</authentication>

<authorization>
<allow users="*" /> <!-- 允许所有用户 -->
<!-- <allow users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
<deny users="[逗号分隔的用户列表]"
roles="[逗号分隔的角色列表]"/>
-->
</authorization>




然后在你要登陆的页面中加两个Function

Private Function CreateAuthTicket(ByVal userName As String, ByVal roles As String, _
ByVal persistent As Boolean) As FormsAuthenticationTicket
Return New FormsAuthenticationTicket(1, userName, DateTime.Now, _
DateTime.Now.AddMinutes(60), persistent, roles)
End Function
Private Function CreateAuthCookie(ByVal authTicket As FormsAuthenticationTicket) As HttpCookie
Return New HttpCookie(FormsAuthentication.FormsCookieName, _
FormsAuthentication.Encrypt(authTicket))
End Function


如果你点击登陆按钮,你就会到数据库中寻找这个用户和密码,如果存在就写

Dim authTicket As FormsAuthenticationTicket
Dim authCookie As HttpCookie

authTicket = CreateAuthTicket(txtUserID.Text, CStr(viewstate("roles")), False)
authCookie = CreateAuthCookie(authTicket)
HttpContext.Current.Response.Cookies.Add(authCookie)

不存在就EXIT SUB
exboy 2004-08-27
  • 打赏
  • 举报
回复
在一个PAGE类里面做验证,然后要验证的页面都从这个页面继承,这样就可以实现每个页面验用户登陆了没有,而不要在每个页面中写代码了.
wnlovezxm 2004-08-27
  • 打赏
  • 举报
回复
可以用表单验证,具体做法的自己去查帮助吧,但是也没好到哪去!
kenMoxi 2004-08-27
  • 打赏
  • 举报
回复
你可以在基类里写一个方法!
然后每个页面都继承这个基类!
然后调用这个方法验证用户是否已经登陆~
当然,这个方法里面需要验证用户的SESSION
另一种方法是:
<authentication mode="Forms">
<forms name="myaspx" path="/" loginUrl="default.aspx" protection="All" />
</authentication>
<authentication>
<authorization>
<allow users="*" />
</authentication>

加上(在<system.web> </system.web>外面)
<location path="admin">
<System.web>
<authorization>
<deny users="?" />
</authorization>
</System.web>
</location>


复制web.config到admin目录下,然后只留下验证那段,改成需要验证的设置就行了
jijl2001 2004-08-27
  • 打赏
  • 举报
回复
我也想知道,帮你顶
7ero 2004-08-27
  • 打赏
  • 举报
回复
不用SESSION用COOKIE也可以
加载更多回复(7)

62,243

社区成员

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

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

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

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