2013-01-02 35 views
0

如何從母版頁中指定下面的HeadLoginName? (將其保存的變量) 感謝從母版頁獲取headlogin名稱

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false"> 
       <AnonymousTemplate> 
        <a href="~/login.aspx" ID="HeadLoginStatus" runat="server">Log In</a> 
       </AnonymousTemplate> 
       <LoggedInTemplate> 
        Welcome <span class="bold"><asp:LoginName ID="HeadLoginName" runat="server" /></span>! 
        [ <asp:LoginStatus ID="HeadLoginStatus" runat="server" LogoutAction="Redirect" LogoutText="Log Out" LogoutPageUrl="~/logout.aspx"/> ] 
       </LoggedInTemplate> 
    </asp:LoginView> 

enter image description here

回答

1

最終被使用獲得的用戶名: System.Web.HttpContext.Current.User.Identity.Name

簡單得多。謝謝

0

您應該能夠使用:

var view = (LoginView)(Page.Master.FindControl("HeadLoginView"); 
if (view != null) 
{ 
    var loginName = (LoginName)view.FindControl("HeadLoginName"); 
    if (loginName != null) 
    { 

    } 
} 

有更好的設計模式來揭露這些類型的東西,你可以做同樣,給主頁面一個接口定義,並將主屬性轉換爲該接口。然後你可以暴露你想要的東西。

+0

嘗試了這一點,但即使用戶登錄登錄名也是空的。 所以我使用了一個斷點,我想要的值位於此登錄名的非公共成員。任何想法如何訪問這個? – rikket

+0

是的,我看到UserName被標記爲friend/internal。非公共成員只能通過反思來訪問。 –