2013-03-05 72 views
0

我使用使用Web應用程序的窗體身份驗證內置的登錄功能,並已運作良好。 我想根據某些條件(例如,服務器,IP地址等)將DisplayRememberMe.visible設置爲false。當然,我可以手動添加visible="false"到這裏顯示的標記,但這似乎是一個糟糕的路要走。ASP.Net FormsAuthentication了rememberMe

<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,但複選框和標籤仍然在頁面加載後可見。

我是否使用了正確的電話嗎?我應該把它放在哪裏纔能有效?

這是我的第一篇文章對左右,所以請原諒任何差禮節。

回答

0

您可以通過創建登錄控制的事件作爲
的OnLoad =「LoginUser_OnLoad」

在頁面的.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變化選擇框的知名度和標籤方法。

+0

感謝PRASHANT。這絕對有效,並解決了我的問題,但它沒有解決爲什麼更改'LoginUser.DisplayRememberMe'不起作用。 – marcusT 2013-03-05 13:46:49

相關問題