两个页面一个是Login.aspx一个是Default.aspx
在登陆界面的按钮事件处理的代码为
public void Login_OnClick(object sender, EventArgs args)
    {
        if (UsernameTextbox.Text=="feng123" && PasswordTextbox.Text=="123456")
        {
            FormsAuthentication.SetAuthCookie(UsernameTextbox.Text, true);            Response.Redirect("Default.aspx"); 
        }
        else
            Msg.Text = "Login failed. Please check your user name and password and try again.";
    }在Default.aspx中的代码为
<div>
    <% if( Request.IsAuthenticated ) { %>
        当前用户已登录,登录名:<%= Context.User.Identity.Name %> <br />            
        <input type="submit" name="Logon" value="退出" />
    <% } else { %>
        <b>当前用户还未登录。</b>
    <% } %>         
</div>为什么我登陆后页面跳转到Default.aspx中显示的为
当前用户还未登陆

解决方案 »

  1.   

    很明显:if( Request.IsAuthenticated ) 不成立,直接进了else,查看下web.config的配置文件信息。
    IsAuthenticated 一般是用户请求是否已经过身份验证。建议使用[单点登录] 做判断
    http://blog.csdn.net/huijunliang/article/details/7259889
      

  2.   


    我明白兄台的意思,但是我很纳闷为什么
    FormsAuthentication.SetAuthCookie(UsernameTextbox.Text, true);
    这个语句执行了但是没有实现登陆的效果
      

  3.   

    试试:
    FormsAuthentication.SetAuthCookie(UsernameTextbox.Text, true,FormsAuthentication.FormsCookiePath);
    获取:string idenName = HttpContext.Current.User.Identity.Name;
      

  4.   

    看下web.config中的配置信息,是否把验证模式设成了forms身份验证,看不出问题的话,把web.config的相关配置的代码贴出来
      

  5.   


    <!--
                通过 <authentication> 节可以配置 ASP.NET 用来 
                识别进入用户的
                安全身份验证模式。 
            -->
        <authentication   mode= "Forms">      <forms   loginUrl= "Default.aspx"   name= ".ASPXAUTH "> </forms>    </authentication>这是web.config中关于验证部分的代码
      

  6.   

    经测试,代码完全没有问题登录后显示:当前用户已登录,登录名:PC20XXXXXXXKLT\Administrator 有问题加Q:764537152
      

  7.   

    谢谢朋友帮忙,公司上班不让用qq,我在研究下,弄不明白晚上加你qq请教