如何根据代码背后的条件显示/隐藏页面的某些部分?

时间:2013-11-19 11:32:35

标签: c# asp.net

以下是会话到期的C#代码:

Session.Timeout = Convert.ToInt32(Application["SessionExpire"]);
if (Convert.ToBoolean(Request.QueryString["Expired"]) == true)
{
    txtMsg.ForeColor = System.Drawing.Color.Red;
    txtMsg.Text = "Session expired";
}

当会话到期时,会将其重定向到登录页面,但登录的userNamelogout选项仍然可见。这必须在下面的脚本中进行。

<p>
    <% if (oIdentity != null)
       { %>
        Welcome, <% if (oIdentity.LoginId > 0)
                    {
                        Response.Write(oIdentity.Display.LoginName + " - ");  %>  <a href="#" id="DoLogOut">LogOut</a>
        <% }
                    else
                    { %>
            Guest
        <% }
       } %>
</p>

我需要删除userName并隐藏注销选项。有可能吗?

2 个答案:

答案 0 :(得分:0)

如果您使用的是表单身份验证,则可以对用户进行签名:http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication.signout%28v=vs.110%29.aspx

如果您使用的是Windows身份验证,则非常棘手。您可以在IE中执行此操作,但不能在其他浏览器中执行此操作。

如果不是,请在问题中澄清。

答案 1 :(得分:0)

一个非常懒惰的尝试是重新执行页面中的检查,改变这一行:

Welcome, <% if (oIdentity.LoginId > 0)

到这个

Welcome, <% if (oIdentity.LoginId > 0 && Convert.ToBoolean(Request.QueryString["Expired"]) == false)