我正在研究登录/注册模块(仅供参考,我只是一个简单的登录表单),数据流来自sql server,用于注册和登录,代码目前正常工作。 我想在我的代码中使用signin / signout功能。我已经创建了一个登录表单,用户可以登录,登录成功后,用户被重定向到default_page.aspx。 我的r& d代码如下:
<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");
}
从上面的代码你可以看到我只放了一个linkbutton,如果用户点击上面的链接按钮,用户就会退出并重定向到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 :(得分: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 ??
}