Forms登陆验证,为什么我必须登陆两次才成功 ,我在运行的时候第一次登陆前我的站点图标是不显示的,而第一次登陆成功后才显示,但还在登陆界面 代码如下:
单击登陆按钮 事件:
if (Authenticate(this.txtUserName.Text.ToString(), this.txtUserPwd.Text.ToString()) == true)
        {
          
            FormsAuthentication.SetAuthCookie(this.txtUserName.Text.ToString(),false);
            Response.Redirect(PathPrefix + "/ST_RCategoryMan.aspx");
        }
        else
        {
            this.lalInfo.Text = "用户名或密码错误";
        }
//////////Authenticate函数判断用户是否合法,合法返回true
web.config的设置:
<authentication mode="Forms">
      <forms loginUrl="ST_UsersMan.aspx" name="FormsAuthCookie"/>       
     </authentication>
       <authorization>
        <deny users="?"/>
        </authorization>
////望高手指点

解决方案 »

  1.   

    1、检查 FormsAuthentication.SetAuthCookie 有无被执行
    2、按 Crtl+F5 强制刷新一次页面,清除缓存试试
      

  2.   

    是在ASP.NET里面吗?
      如果是请写在
    if(!this.IsPostBack)
    {
    你的代码...}
      

  3.   

    我第一次登陆时 FormsAuthentication.SetAuthCookie 已经被执行了
      

  4.   

    我的是按钮单击事件怎么写if(!this.IsPostBack)
      

  5.   

    FormsAuthentication.RedirectFromLoginPage("登陆名",false);
    试试 这个
      

  6.   

    这好像和forms验证没有关系你可以一步一步调试if(Authenticate(this.txtUserName.Text.ToString(), this.txtUserPwd.Text.ToString()))
    {
       lblMessage.Text="登录成功";
    }
    else
    {
       lblMessage.Text="登录失败";
    }如果这个都不正常的话 看看页面其它的地方如Page_Load OnLoad 什么的地方代码有没什么问题
      

  7.   

    登陆验证是正确的,即使我把验证返回值一直为ture,还是这样
      

  8.   

    说明你有个除了 Form 认证外,还有一个地方用了 Response.Redirect
    比如 Global 里面,或者是所继承的父类中
    仔细检查。
    调试  Response.Write(User.Identity.IsAuthenticated);
    IsAuthenticated 为True 说明已验证通过;False 就说明没有通过 Form 验证
      

  9.   

    viewstate问题;其实页面未刷新,可以在登录成功后用
    response.redirect()

    Response.Write("<script language='javascript'>alert('" + i +"张照片添加成功');window.location.href=window.location.href;</script>");
    从新加载