2011-07-20 59 views
0

我正在登录/注册模块(FYI no rolls/membership只是一个简单的登录表单),数据流来自sql server,用于注册和登录,代码是目前工作正常。 我想在我的代码中使用登录/注销功能。我已经创建了一个登录表单,用户可以登录,登录成功后,用户被重定向到default_page.aspx。 我[R & d码高达这是因为:关于登录/注销,在asp.net中进行身份验证

<td width="122" align="right"><asp:LinkButton ID="LinkButton1" runat="server" 
      onclick="LinkButton1_Click">Sign Out</asp:LinkButton></td> 

CS页:

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    //After click Log out we need to delete all session values 


    Session.RemoveAll(); 
    Response.Redirect("userlogin.aspx"); 
} 

从上面的代码中可以看出U我已经把只有一个LinkBut​​ton,如果用户点击上面的链接按钮,用户得到了注销并重定向到loginpage(这里是userlogin.aspx)。但是现在如果我正在尝试更改(请参阅下面的aspx和.cs)signin | signout,我得到的错误如下:'System.Security.Principal.IPrincipal'不包含'IsAuthenticated'的定义,也没有扩展方法' IsAuthenticated”接受一个类型的第一个参数 'System.Security.Principal.IPrincipal' 可以找到(是否缺少using指令或程序集引用?)

aspx页面:

<td width="122" align="right"><asp:LinkButton ID="LinkButtonSignInOut" runat="server" 
      onclick="LinkButton1_Click">""</asp:LinkButton></td> 

的.cs页码:

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    //After click Log out we need to delete all session values 
    if (User.IsAuthenticated)**//error is here** 
     LinkButtonSignInOut.Text = "Sign Out"; 
    else 
     LabelSignInOut.Text = "Sign In"; 

    Session.RemoveAll(); 
    Response.Redirect("userlogin.aspx"); 
} 

任何建议???

谢谢!

回答

0

检查下面的代码,我已经写了评论

protected void LinkButton1_Click(object sender, EventArgs e) 
{ 
    if (User.IsAuthenticated) **//error is here** 
    if(User.Identity.IsAuthenticated) // this is correct code 
     LinkButtonSignInOut.Text = "Sign Out"; 
    else 
     LabelSignInOut.Text = "Sign In"; 

    Session.RemoveAll(); // 
    Session.Abandon(); // Better to use this 
    Response.Redirect("userlogin.aspx"); 
    // You are display assigning text in label and immediate after you are redirecting it to another page ?? 
} 
+0

@thanks ......但目前没有窗户,检查你的代码...是你说得对,错重定向...但目前我我正在为此工作。 – Alok