如何更改登录链接以注销asp.net中的链接

时间:2014-06-22 22:08:13

标签: asp.net login logout

在登录页面上我使用了这个登录链接,我想在用户登录时更改链接以注销链接。不胜感激。

的Login.aspx

<div id="header">
        <div class="loginDisplay">
 [ <a href="~/Login.aspx" id="HeadLoginStatus" runat="server">Log In</a> ]

</div>

Login.aspx背后的代码

  public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        lbInfo.Enabled = false;
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string strcon = "Data Source=MUNIZA\\SQLEXPRESS;Initial Catalog=LD_Server;Integrated Security=True";

        SqlConnection con = new SqlConnection(strcon);
        SqlCommand com = new SqlCommand("spStudentProfile", con);

        com.CommandType = CommandType.StoredProcedure;
        SqlParameter p1 = new SqlParameter("RegNo", TextBox2.Text);

        SqlParameter p2 = new SqlParameter("Password", TextBox1.Text);

        com.Parameters.Add(p1);
        com.Parameters.Add(p2);
        con.Open();

        SqlDataReader rd = com.ExecuteReader();
        if (rd.HasRows)
        {
            rd.Read();
            Response.Redirect("~/Home.aspx");
        }
        else
        {
            lbInfo.Enabled = true;
            lbInfo.Text = "Invalid username or password.";
        }
      }
    }

1 个答案:

答案 0 :(得分:0)

更安全如果您使用其中一种asp.net会员技术登录您的用户并检查他们的权限,但这里是一个快速解决您尝试做的事情的基础上你的代码:

只需添加会话属性并对代码进行以下更改即可实现您的目标:

public bool IsAuthenticated
{
   get { return Convert.ToBoolean(Session["sIsAuthenticated"] ?? false); }
   set { Session["sIsAuthenticated"] = value; }
}

protected void Button1_Click(object sender, EventArgs e)
{
   //your codes ...

    if (rd.HasRows)
    {
        IsAuthenticated = true;
        //your codes ...
    }
    else
    {
        IsAuthenticated = false;
        //your codes ...
    }
 }

现在在您的.aspx页面中,您可以拥有以下内容:

<div id="header">
 <div class="loginDisplay">
 <%: IsAuthenticated ?  "[ <a href='" + ResolveUrl("~/Logout.aspx") + "'>Log Out</a> ]" : 
                        "[ <a href='" + ResolveUrl("~/Login.aspx") + "'>Log In</a> ]" %>
</div>

现在,您的登录用户有效,直到会话过期。

更新1

将此部分替换为其他页面:

       <%: Session["sIsAuthenticated"].toString ()  == "true" : ...

更新2 (另一种方式)将此代码放在其他页面上

 <%
    string url = "~/Login.aspx", text = "Log in";
    if (Convert.ToBoolean(Session["sIsAuthenticated"] ?? false))
    { url = "~/Logout.aspx"; text = "Log out"; }
 %>
<a href="<%: ResolveUrl(url) %>"><%: text %></a>

现在在页面上加载logout.aspx.cs后面的代码应该在页面加载时终止会话并将用户重定向到另一个页面以完全采取行动。

Logout.aspx.cs

    protected void Page_Load(object sender, EventArgs e)
    {
        Session.Remove("sIsAuthenticated");
        Response.Redirect("~/Login.aspx");
    }