0

我正在使用内置登录功能的 Web 应用程序中使用表单身份验证,它运行良好。我想根据某些条件(例如,哪个服务器、IP 地址等)将 DisplayRememberMe.visible 设置为 false。当然,我可以手动添加visible="false"到此处显示的标记,但这似乎是一种糟糕的方式。

<asp:CheckBox ID="RememberMe" runat="server" />
<asp:Label ID="RememberMeLabel" runat="server" AssociatedControlID="RememberMe" 
     CssClass="inline" >Keep me logged in</asp:Label>

另外,我无法弄清楚哪个 asp 字段具有该DisplayRememberMe字段。

但更重要的是,在文件后面的代码中,我添加了LoginUser.DisplayRememberMe = False,但它被忽略了,标签和复选框仍然可见。我尝试将它添加到各种事件中,例如 Page.Load、Page.Init、Login_User.Init、Login_User.Prerender,但在页面加载后复选框和标签仍然可见。

我使用正确的电话吗?我应该把它放在哪里才能有效?

这是我在 SO 上的第一篇文章,所以请原谅任何不良的礼仪。

4

1 回答 1

0

您可以通过将登录控件事件创建为
OnLoad="LoginUser_OnLoad"来更改 CheckBox 和 Label 的可见性

在 .cs 页面上

 protected void LoginUser_OnLoad(object sender, EventArgs eventArgs)
        {            
            var login = (System.Web.UI.WebControls.Login)sender;
            var checkbox = login.FindControl("RememberMe");
            checkbox.Visible = false;
            var label = login.FindControl("RememberMeLabel");
            label.Visible = false;
        }

您还可以将可见性条件放在 LoginUser_OnLoad 方法中。

于 2013-03-05T05:41:58.843 回答