トップ回答者
LoginNameに ゲスト と 表示されせることは可能でしょうか?

質問
-
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
よろしくお願いいたします。
回答
-
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" /> さん! ログイン済みです。</p>
<p>パスワードの変更は<a href="ChangePassword.aspx">こちら</a>から。</p>
</div>
</LoggedInTemplate>
</asp:LoginView>
すべての返信
-
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" /> さん! ログイン済みです。</p>
<p>パスワードの変更は<a href="ChangePassword.aspx">こちら</a>から。</p>
</div>
</LoggedInTemplate>
</asp:LoginView>