日期:2014-05-18  浏览次数:20384 次

Forms登陆验证,为什么我必须登陆两次才成功
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、检查 FormsAuthentication.SetAuthCookie 有无被执行
2、按 Crtl+F5 强制刷新一次页面,清除缓存试试
------解决方案--------------------
是在ASP.NET里面吗?
如果是请写在
if(!this.IsPostBack)
{
你的代码...

}
------解决方案--------------------
FormsAuthentication.RedirectFromLoginPage( "登陆名 ",false);
试试 这个
------解决方案--------------------
这好像和forms验证没有关系

你可以一步一步调试

if(Authenticate(this.txtUserName.Text.ToString(), this.txtUserPwd.Text.ToString()))
{
lblMessage.Text= "登录成功 ";
}
else
{
lblMessage.Text= "登录失败 ";
}

如果这个都不正常的话 看看页面其它的地方如Page_Load OnLoad 什么的地方代码有没什么问题