CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

近期一直研究asp.net身份验证问题,有一些问题一直没搞懂,求救!

楼主dotnetisgood()2006-06-03 10:09:46 在 .NET技术 / ASP.NET 提问

以前一直用asp的cookies做身份验证,现在学ASP.net发现太多的不同,现在就以下几点问题,向大家请教!  
   
  通过数据库查询用户名/密码后,得到相应记录后,如何把该条记录的各项信息写入cookies,并在其它页如何取值验证?  
  比如该条记录为如下格式:  
   
  用户ID       用户名         密码       公司名称       联系人       电话  
   
  或者哪位朋友有相关的教程或源代码,能给小弟,小弟多谢了!!!! 问题点数:100、回复次数:25Top

1 楼shixin1198(好好学习 天天上上)回复于 2006-06-03 10:23:04 得分 5

楼主    
  现在.net程序   一般   把用户名   跟密码   放到session中  
  点登陆后   会先执行postback事件(把你的用户名   跟密码   放到Sql语句)  
  如果   查找成功   你可以在   服务器端事件中   执行成功信息处理程序!  
   
  从asp   到asp.net     注意   搞清楚postback   runat=server   codebehind   等几个   简单的概念Top

2 楼roydux(后台运行中-http://www.LeadNT.org 大家一起来写吧)回复于 2006-06-03 10:27:29 得分 5

有一个Formsauthention....  
   
  这个是做验证的Top

3 楼dotnetisgood()回复于 2006-06-03 10:31:57 得分 0

各位好朋友,我是初学,请给小弟简单清楚的说一说,感激!Top

4 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2006-06-03 10:40:02 得分 5

Formsauthention   你用过没,可以先到msdn查一下,如果有不懂的再具体问Top

5 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2006-06-03 10:44:14 得分 5

http://community.csdn.net/Expert/topic/4701/4701580.xml?temp=.9203455  
   
  http://community.csdn.net/Expert/topic/4701/4701753.xml?temp=.1022303Top

6 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-06-03 10:44:33 得分 2

其实都一样呀,也可以用cookies呀。  
   
  其实   Formsauthention....   就是用的   cookiesTop

7 楼chenghp(不登高山,不知天之高也;不临深溪,不知地之厚也。)回复于 2006-06-03 10:48:12 得分 5

同样可以用Cookies,只是要将数据保存好,最好加密一下!Top

8 楼98star(超越梦想,一起飞。我们需要真心面对。)回复于 2006-06-03 11:14:54 得分 5

http://ami.9966.org/article.asp?id=114Top

9 楼dotnetisgood()回复于 2006-06-03 11:41:40 得分 0

顶,哪位能给一个用cookies写的Forms身份验证程序代码Top

10 楼lazyfish(呆呆虫)回复于 2006-06-03 12:02:39 得分 20

最近在看asp.net   forum,对其中的验证机制看得模模糊糊,看完构建安全的   ASP.NET   应用程序中的表单身份验证部分,思路就很清晰了,稍做了点记录,以便查阅:    
   
  构建基于forms的验证机制过程如下:    
  1,设置IIS为可匿名访问和asp.net   web.config中设置为form验证    
  2,检索数据存储验证用户,并检索角色(如果不是基于角色可不用)    
  3,使用FormsAuthenticationTicket创建一个Cookie并回发到客户端,并存储    
      角色到票中,如:    
      FormsAuthentication.SetAuthCookie(Username,true   |   false)    
      cookies保存时间:    
      HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires=DateTime.Now.AddDays(1)    
   
      如果需要存储角色,采用:    
    FormsAuthenticationTicket   authTicket   =   new    
    FormsAuthenticationTicket(    
                          1,   //   version    
                          txtUserName.Text,   //   user   name    
                          DateTime.Now,   //   creation    
                          DateTime.Now.AddMinutes(20),//   Expiration    
                          false,   //   Persistent    
                          roles   );   //   User   data    
      roles是一个角色字符串数组    
      string   encryptedTicket   =   FormsAuthentication.Encrypt(authTicket);   //加密    
   
      存入Cookie    
      HttpCookie   authCookie   =    
      new   HttpCookie(FormsAuthentication.FormsCookieName,    
      encryptedTicket);    
   
      Response.Cookies.Add(authCookie);    
   
  4,在Application_AuthenticateRequest事件中处理程序中(Global.asax)中,使用    
      票创建IPrincipal对象并存在HttpContext.User中    
      代码:    
      HttpCookie   authCookie   =   Context.Request.Cookies[FormsAuthentication.FormsCookieName];    
      FormsAuthenticationTicket   authTicket   =   FormsAuthentication.Decrypt(authCookie.Value);//解密    
      string[]   roles   =   authTicket.UserData.Split(new   char[]{';'});//根据存入时的格式分解,;或|....    
      Context.User   =   new   GenericPrincipal(Context.User.Identity,   Roles);//存在HttpContext.User中    
   
  5,需要对某些页面进行角色控制,有两种方法:    
    5.1,web.config中加    
          <location   path="EditPost.aspx">    
    <system.web>    
      <authorization>    
                                                  <allow   roles="RoleName"   />    
        <deny   users="?"   />    
      </authorization>    
    </system.web>    
          </location>    
    5.2,把只能是某种角色访问的文件放在同一目录下,在此目录下添加一个web.config    
        <configuration>    
            <system.web>    
    <authorization>    
                        <allow   roles="RoleName"   />    
          <deny   users="*"   />    
    </authorization>    
            </system.web>    
        </configuration>    
      说明:子目录的web.config设置优先于父目录的web.config设置    
   
   
  Top

11 楼pengchao_214()回复于 2006-06-03 12:17:36 得分 6

我觉的用Session来做身份验证很方便;  
  我的做法就是在登入界面中定义一个Session  
  而在其它的登入界面的load事件中  
  先判断Session的值是否为空,就可以了Top

12 楼dotnetisgood()回复于 2006-06-03 15:46:02 得分 0

顶,求源代码,像asp.net   forums登陆验证那样的Top

13 楼liujiayu10(活着就好)回复于 2006-06-03 16:03:56 得分 5

If   result   >   0   Then  
                          Response.Cookies("myCookies")("myID")   =   result  
                          Response.Redirect("Admin.html")  
                  Else  
                          myError()  
                  End   IfTop

14 楼liujiayu10(活着就好)回复于 2006-06-03 16:04:42 得分 5

If   Request.Cookies("myCookies")   Is   Nothing   Then  
                          Response.Redirect("Admin.aspx")  
                  End   IfTop

15 楼liujiayu10(活着就好)回复于 2006-06-03 16:05:18 得分 5

Response.Cookies("myCookies")("myID")   =   Nothing  
                  Response.Cookies("myCookies").Expires   =   DateTime.Now.AddMonths(-1)  
                  Response.Redirect("Login.aspx")Top

16 楼ilovejolly(有些伤感)回复于 2006-06-03 16:18:37 得分 2

markTop

17 楼xiahouwen(武眉博<活靶子.NET>)回复于 2006-06-03 16:25:08 得分 5

自己实现IIdentity和IPrincipal接口  
   
  参考  
   
  http://www.codeproject.com/aspnet/formsroleauth.asp  
  http://www.codeproject.com/aspnet/rolesbasedauthentication.aspTop

18 楼dotnetisgood()回复于 2006-06-03 16:36:24 得分 0

写和读Cookies现在基本搞清楚了,现在就是有点搞不清,用FORMS验证时,用Cookies的方法与以前Asp用Cookies的方法有什么不同,Forms里有一个timeout属性,Response.Cookies有Expires   到底怎么区分呢Top

19 楼cm180(Tony)回复于 2006-06-03 16:43:19 得分 2

关注,偶慢慢看Top

20 楼xcz1943(小钊)回复于 2006-06-03 17:29:27 得分 2

楼上的朋友说的很清楚了!Top

21 楼tudoux()回复于 2006-06-03 18:05:16 得分 10

可以结合Cookies和session  
  以下是asp的  
   
  1,登录时先记录  
        session("username")=username      
        response.Cookies("webusername")("username")=md5(username)   'Cookies最好加密  
   
  2,使用时调用函数  
  function   IsUserLogin()  
          username=session("username")  
          cookieusername=request.Cookies("webusername")("username")  
          if   username=""   or   cookieusername=""   then  
                  IsUserLogin=false  
          else          
  if   md5(username)=cookieusername   then  
        IsUserLogin=true    
  else  
        IsUserLogin=false  
  end   if  
          end   if  
  end   functionTop

22 楼Jinwmmail()回复于 2006-06-04 15:59:40 得分 2

楼主可参考   PetShop   3.0   里的验证方式,看到代码就很清楚了.  
  代码只要下载安装就有.Top

23 楼sorrow_man(不会我就问,零下一度)回复于 2006-06-04 20:20:15 得分 2

学习Top

24 楼ztwz(-_-b(偶要像海绵一样的狂吸水水!))回复于 2006-06-05 07:45:27 得分 2

markTop

25 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-06-08 10:29:04 得分 0

收藏Top

相关问题

关键词

得分解答快速导航

  • 帖主:dotnetisgood
  • shixin1198
  • roydux
  • liuxiaoyi666
  • liuxiaoyi666
  • jyk
  • chenghp
  • 98star
  • lazyfish
  • pengchao_214
  • liujiayu10
  • liujiayu10
  • liujiayu10
  • ilovejolly
  • xiahouwen
  • cm180
  • xcz1943
  • tudoux
  • Jinwmmail
  • sorrow_man
  • ztwz

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo