CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

forms验证 问题!

楼主pontus(pontus)2005-06-15 18:29:08 在 .NET技术 / ASP.NET 提问

---web.config  
  <system.web>  
  ...  
  <authentication   mode="Forms">    
          <forms   name="Catalog.ASPXAUTH   "   loginUrl="/Manage/login.aspx"   protection="All"   timeout="30"   path=   "/">  
          </forms>    
  </authentication>  
  <authorization>  
                  <allow   users="*"   />  
  </authorization>  
  ..  
  </system.web>  
     
    <location   path="Manage">  
                  <system.web>  
                          <authorization>  
                                  <deny   users="?"   />  
                          </authorization>  
                  </system.web>  
      </location>  
   
  --------------------------C#  
  private   void   btnOK_Click(object   sender,   System.EventArgs   e)  
  {  
  string   strUserName   =   Tool.FormatString(this.txtUserName.Text.Trim());  
  string   strPassword   =   Tool.FormatString(this.txtPassword.Text.Trim());  
   
  DataTable   dt   =   CDB.GetUserByLogin(strUserName,strPassword);  
   
  if(dt.Rows.Count   >   0)  
  {  
  FormsAuthentication.SetAuthCookie(strUserName,false);  
   
  string   returnUrl   =   Request.QueryString["ReturnUrl"];  
  if   (returnUrl   ==   null)   returnUrl   =   "/";  
   
  Response.Redirect(returnUrl);  
  }  
  else  
  {  
  this.labMessage.Text   =   "无法登录!";  
  }  
   
  --------------  
  输入正确后怎么还是不能用过验证阿?老是出现login.aspx页面 问题点数:50、回复次数:7Top

1 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-06-15 18:38:01 得分 0

通过验证后   .....  
     
   
  //   Create   a   new   ticket   used   for   authentication  
                                  FormsAuthenticationTicket   ticket   =   new   FormsAuthenticationTicket(  
                                          1,   //   Ticket   version  
                                          Username.Text,   //   Username   associated   with   ticket  
                                          DateTime.Now,   //   Date/time   issued  
                                          DateTime.Now.AddMinutes(30),   //   Date/time   to   expire  
                                          true,   //   "true"   for   a   persistent   user   cookie  
                                          reader.GetString(0),   //   User-data,   in   this   case   the   roles  
                                          FormsAuthentication.FormsCookiePath);//   Path   cookie   valid   for  
   
                                  //   Encrypt   the   cookie   using   the   machine   key   for   secure   transport  
                                  string   hash   =   FormsAuthentication.Encrypt(ticket);  
                                  HttpCookie   cookie   =   new   HttpCookie(  
                                          FormsAuthentication.FormsCookieName,   //   Name   of   auth   cookie  
                                          hash);   //   Hashed   ticket  
   
                                  //   Set   the   cookie's   expiration   time   to   the   tickets   expiration   time  
                                  if   (ticket.IsPersistent)   cookie.Expires   =   ticket.Expiration;  
   
                                  //   Add   the   cookie   to   the   list   for   outgoing   response  
                                  Response.Cookies.Add(cookie);  
   
                                  //   Redirect   to   requested   URL,   or   homepage   if   no   previous   page  
                                  //   requested  
                                  string   returnUrl   =   Request.QueryString["ReturnUrl"];  
                                  if   (returnUrl   ==   null)   returnUrl   =   "/";  
   
                                  //   Don't   call   FormsAuthentication.RedirectFromLoginPage   since   it  
                                  //   could  
                                  //   replace   the   authentication   ticket   (cookie)   we   just   added  
                                  Response.Redirect(returnUrl);  
  Top

2 楼wangjuping(三皮子[www.3pz.com])回复于 2005-06-15 18:47:12 得分 0

<forms   name="Catalog.ASPXAUTH   "   loginUrl="/Manage/login.aspx"   protection="All"   timeout="30"   path=   "/">  
          </forms>    
   
  我用这句时说是无法识别的属性!Top

3 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-06-15 18:48:56 得分 0

一个简单的例子给你看看.一般如果你用forms验证的话捏.比如你访问项目下的你的随便的.aspx文件,如果没有通过,就会跳转到login.aspx页面.然后在这个页面里你可以这样处理.  
   
          Private   Sub   Button1_Click(ByVal   sender   As   System.Object,   ByVal   e   As   System.EventArgs)   Handles   Button1.Click  
                  If   TextBox1.Text.Trim   <>   ""   And   TextBox2.Text.Trim   <>   ""   Then  
                          If   TextBox1.Text   =   "hackate"   And   TextBox2.Text   =   "520520"   Then  
                                  FormsAuthentication.RedirectFromLoginPage(TextBox1.Text,   CheckBox1.Checked)     ''这个方法设置了,如果验证成功,就自动返回在转到登陆页面前的页面,这样他会自动转过去,  
                          Else  
                                  Response.Write("<script>alert('用户名或者密码错误!');</script>")  
                          End   If  
                  Else  
                          Response.Write("<script>alert('不能为空');</script>")  
                  End   If  
          End   SubTop

4 楼pontus(pontus)回复于 2005-06-15 18:49:07 得分 0

上面的方法试过了,一样的结果!Top

5 楼pontus(pontus)回复于 2005-06-15 18:54:28 得分 0

我要的就是有个Manage的文件夹需要验证了才能看到里面的文件  
   
  可是现在怎么都通不过验证,FormsAuthentication.SetAuthCookie都已经执行到了  
   
  不知到我的web.config设置对没有?Top

6 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-06-15 21:05:45 得分 0

<?xml   version="1.0"   encoding="utf-8"   ?>  
  <configuration>  
           
      <system.web>  
   
          <!--     动态调试编译  
                      设置   compilation   debug="true"   以启用   ASPX   调试。否则,将此值设置为  
                      false   将提高此应用程序的运行时性能。  
                      设置   compilation   debug="true"   以将调试符号(.pdb   信息)  
                      插入到编译页中。因为这将创建执行起来  
                      较慢的大文件,所以应该只在调试时将此值设置为   true,而在所有其他时候都设置为  
                      false。有关更多信息,请参考有关  
                      调试   ASP.NET   文件的文档。  
          -->  
          <compilation    
                    defaultLanguage="c#"  
                    debug="true"  
          />  
   
          <!--     自定义错误信息  
                      设置   customErrors   mode="On"   或   "RemoteOnly"   以启用自定义错误信息,或设置为   "Off"   以禁用自定义错误信息。    
                      为每个要处理的错误添加   <error>   标记。  
   
                      "On"   始终显示自定义(友好的)信息。  
                      "Off"   始终显示详细的   ASP.NET   错误信息。  
                      "RemoteOnly"   只对不在本地   Web   服务器上运行的  
                        用户显示自定义(友好的)信息。出于安全目的,建议使用此设置,以便    
                        不向远程客户端显示应用程序的详细信息。  
          -->  
          <customErrors    
          mode="RemoteOnly"    
          />    
   
          <!--     身份验证    
                      此节设置应用程序的身份验证策略。可能的模式是   "Windows"、    
                      "Forms"、   "Passport"   和   "None"  
   
                      "None"   不执行身份验证。    
                      "Windows"   IIS   根据应用程序的设置执行身份验证    
                          (基本、简要或集成   Windows)。在   IIS   中必须禁用匿名访问。  
                      "Forms"   您为用户提供一个输入凭据的自定义窗体(Web   页),然后    
                        在您的应用程序中验证他们的身份。用户凭据标记存储在   Cookie   中。  
                      "Passport"   身份验证是通过   Microsoft   的集中身份验证服务执行的,  
                        它为成员站点提供单独登录和核心配置文件服务。  
          -->  
          <authentication   mode="Forms"   >  
         
      <forms   name=".test"   loginUrl="Manage/login.aspx"   timeout="30"   path="/"></forms>  
                                   
  </authentication>    
   
  <!--     授权    
                        此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问  
                      应用程序资源。通配符:   "*"   表示任何人,"?"   表示匿名  
                      (未经身份验证的)用户。  
          -->  
   
          <authorization>  
                  <allow   users="*"   />   <!--   允许所有用户   -->  
                          <!--     <allow           users="[逗号分隔的用户列表]"  
                                                            roles="[逗号分隔的角色列表]"/>  
                                      <deny             users="[逗号分隔的用户列表]"  
                                                            roles="[逗号分隔的角色列表]"/>  
                          -->  
          </authorization>  
   
          <!--     应用程序级别跟踪记录  
                      应用程序级别跟踪为应用程序中的每一页启用跟踪日志输出。  
                      设置   trace   enabled="true"   可以启用应用程序跟踪记录。如果   pageOutput="true",则  
                      在每一页的底部显示跟踪信息。否则,可以通过浏览   Web   应用程序  
                        根目录中的   "trace.axd"   页来查看  
                      应用程序跟踪日志。  
          -->  
          <trace  
                  enabled="false"  
                  requestLimit="10"  
                  pageOutput="false"  
                  traceMode="SortByTime"  
  localOnly="true"  
          />  
   
          <!--     会话状态设置  
                      默认情况下,ASP.NET   使用   Cookie   来标识哪些请求属于特定的会话。  
                      如果   Cookie   不可用,则可以通过将会话标识符添加到   URL   来跟踪会话。  
                    若要禁用   Cookie,请设置   sessionState   cookieless="true"。  
          -->  
          <sessionState    
                          mode="InProc"  
                          stateConnectionString="tcpip=127.0.0.1:42424"  
                          sqlConnectionString="data   source=127.0.0.1;Trusted_Connection=yes"  
                          cookieless="false"    
                          timeout="20"    
          />  
   
          <!--     全球化  
                      此节设置应用程序的全球化设置。  
          -->  
          <globalization    
                          requestEncoding="utf-8"    
                          responseEncoding="utf-8"    
        />  
         
    </system.web>  
     
    <location   path="Manage">  
                  <system.web>  
                          <authorization>  
                                  <deny   users="?"   />  
                          </authorization>  
                  </system.web>  
      </location>  
   
  </configuration>  
   
   
  Manage   目录下有   login.aspx   和   default   .aspx   你设置   default.aspx   为首页....  
  login.aspx    
  中  
  private   void   Button1_Click(object   sender,   System.EventArgs   e)  
  {  
  System.Web.Security   .FormsAuthentication.RedirectFromLoginPage   ("abcv",false);  
   
  }  
   
  我试了一下是通能验证的....  
  Top

7 楼fancyf(凡瑞)回复于 2005-06-15 22:17:08 得分 50

多了两个空格  
  <forms   name="Catalog.ASPXAUTH   "   loginUrl="/Manage/login.aspx"   protection="All"   timeout="30"   path=   "/">  
  删掉"Catalog.ASPXAUTH   "里面那个空格,和path=后面那个空格Top

相关问题

  • forms验证
  • 关于Forms验证
  • Forms验证问题。
  • forms验证问题!
  • Forms验证问题。
  • forms验证问题
  • forms验证问题
  • Forms验证问题
  • Forms验证问题?急!!!
  • 关于Forms身份验证~

关键词

  • 验证
  • 页面
  • formsauthentication
  • returnurl
  • ticket
  • strusername
  • 空格
  • expiration
  • aspx
  • trim

得分解答快速导航

  • 帖主:pontus
  • fancyf

相关链接

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

广告也精彩

反馈

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