1

コンテンツ ページとしてインデックス ページがあり、その上部にこのようなコンテンツ プレース ホルダーがあります。

    <asp:Content ID="Content3" ContentPlaceHolderID="logProcessHolder" runat="server">
        <p class="header-link"><a href="LoginFormContainer.aspx">login</a>&nbsp;or&nbsp;<a href="RegisterFormContainer.aspx">create an account</a></p>
    </asp:Content>

ユーザーがログインしたときにその内容を変更したい。ログイン後、これらのリンクの代わりにユーザー名を入力したいと思います。ログイン方法は既にありますが、別のコンテンツ ページを使用せずにこれを行う方法を知りたいだけです。それとも私にとって論理的な解決策ですか?別のコンテンツ ページをホームページとして使用する必要がありますか?

4

3 に答える 3

2

コードで統合されたログイン コントロールを使用し、それらを contentplaceholder に配置して、ユーザー名を表示するようにカスタマイズできます...

したがって、asp:LoginView を配置し、その AnonymousTemplate に asp:Login コントロールを配置してカスタマイズし、LoggedInTemplate にログイン名、ログアウト リンク、パスワードの変更などを配置できます。

次に例を示します。

<asp:LoginView ID="LoginView1" runat="server">
    <AnonymousTemplate>
        <asp:Login ID="Login1" runat="server"></asp:Login>
    </AnonymousTemplate>
    <LoggedInTemplate>
        <asp:LoginName ID="LoginName1" runat="server" /> | <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutAction="RedirectToLoginPage" LogoutText="End session" />
    </LoggedInTemplate>
</asp:LoginView>

そのコードは ContentPlaceHolder 内に配置する必要があります

これが役に立つことを願っています!!

于 2014-05-28T00:05:35.347 に答える
2

オプションをasp:Panels でラップするか、 epaezr が行っLoginViewたようにコントロールを使用します

<asp:Content ID="Content3" ContentPlaceHolderID="logProcessHolder" runat="server">
   <asp:Panel ID="pnlAnonymous" runat="server">
    <p class="header-link"><a href="LoginFormContainer.aspx">login</a>&nbsp;or&nbsp;<a href="RegisterFormContainer.aspx">create an account</a></p>
   </asp:Panel>
   <asp:Panel ID="pnlVerified" runat="server">
       <asp:Literal ID="litUserName" runat="server" />
   </asp:Panel>
</asp:Content>

次に、コードビハインドで

protected void Page_Load(object sender, EventArgs e)
{
    if (Request.IsAuthenticated)
    { 
        pnlAnonymous.Visible = false;
        pnlVerified.Visible = true;
        litUserName.Text = Context.User.Identity.Name;
    }
    else
    {            
        pnlAnonymous.Visible = true;
        pnlVerified.Visible = false;
    }
 }

パネルを使用する必要はありません。runat="server"また、HTML 要素に ID と属性を与えることで、コード ビハインドでそれらにアクセスすることもできます。例:<p ID="loginLinks" runat="server" class="header-link">...etc...</p>可視性を変更できる場所loginLinks.Visible

于 2014-05-28T00:31:41.333 に答える