none
LoginNameに ゲスト と 表示されせることは可能でしょうか? RRS feed

  • 質問

  • ASP.NET 2.0 にて認証のページを作成しております。
    認証済み/認証前 ということをユーザに提示する為に、Webページに
    認証済み-> ユーザ名を表示 認証前-> ゲスト と表示するようにしたいと考えております。

    この内、認証済みのユーザ名を表示する事は、ASP.NETの標準のコントロール
    Loginコントロール と LoginNameコントロールを利用してコードレスで実現できました。

    MSDN Library によると、「既定では、LoginName コントロールは、Page クラスの User プロパティに格納されている名前を表示します。System.Web.UI.Page.User.Identity.Name プロパティが空の場合、コントロールは表示されません。」
    とあるので、未認証の場合はコントロールが描画されていないと思うのですが、
    これを描画する様にして、 ゲスト と表示させる方法がわかりません。

    どのような手段が有るのか、正確には把握していないのですが、一番自然な方法としてはゲスト用のユーザアカウントをデータベースに事前に登録しておいて、Webサイトにアクセスした時に認証前の場合は、ゲストユーザを割り当てるのがよいのではないかと思うのですが、実現手段を未だ見つけれれない状況におります。


    実現方法をご存知の方、ご助言、解決方法をご教授いただけないでしょうか?

    最後に私の開発環境を記します。
    OS: Windows XP Pro. SP2
    開発ツール: Visual Studio 2005, SQL Server 2005
    開発言語: ASP.NET 2.0, VB.NET2005

    よろしくお願いいたします。
    2008年2月25日 18:30

回答

  • LoginView を使って実現できると思いますが、それは検討されましたでしょうか?

     

    例えば下記のように。

     

    Code Snippet

    <asp:LoginView ID="loginView" runat="server">
        <AnonymousTemplate>
            <div>
                こんにちはゲストさん。ログインしてください。
                <a href="Login.aspx" class="loginbutton">
                    <asp:Image ID="loginImage" runat="server" ImageUrl="~/Images/button-login.gif" 
                        AlternateText="ログイン" />
                </a>
                または
                <a href="Register2.aspx" class="loginbutton">
                    <asp:Image ID="registerImage" runat="server" ImageUrl="~/Images/button-create.gif" 
                        AlternateText="新しいアカウントの作成" />
                </a>
            </div>
        </AnonymousTemplate>
        <LoggedInTemplate>
            <div>
                <p>ようこそ <asp:LoginName ID="loginName" runat="server" /> さん!&nbsp;ログイン済みです。</p>
                <p>パスワードの変更は<a href="ChangePassword.aspx">こちら</a>から。</p>
            </div>
        </LoggedInTemplate>
    </asp:LoginView>

     

     

     

    2008年2月26日 1:12

すべての返信

  • LoginView を使って実現できると思いますが、それは検討されましたでしょうか?

     

    例えば下記のように。

     

    Code Snippet

    <asp:LoginView ID="loginView" runat="server">
        <AnonymousTemplate>
            <div>
                こんにちはゲストさん。ログインしてください。
                <a href="Login.aspx" class="loginbutton">
                    <asp:Image ID="loginImage" runat="server" ImageUrl="~/Images/button-login.gif" 
                        AlternateText="ログイン" />
                </a>
                または
                <a href="Register2.aspx" class="loginbutton">
                    <asp:Image ID="registerImage" runat="server" ImageUrl="~/Images/button-create.gif" 
                        AlternateText="新しいアカウントの作成" />
                </a>
            </div>
        </AnonymousTemplate>
        <LoggedInTemplate>
            <div>
                <p>ようこそ <asp:LoginName ID="loginName" runat="server" /> さん!&nbsp;ログイン済みです。</p>
                <p>パスワードの変更は<a href="ChangePassword.aspx">こちら</a>から。</p>
            </div>
        </LoggedInTemplate>
    </asp:LoginView>

     

     

     

    2008年2月26日 1:12
  • SufferOnWwwさん

     

    提示して頂いたサンプルコードを参考に、

    LoginViewを使って実現できました。

     

    ご指導ありがとうございました。
    2008年2月26日 3:05