0

次のコードを使用して、Site.Master ファイルを使用して、すべてのページにログイン/ログアウト フィールドを作成しています。

<asp:LoginView ID="HeadLoginView" runat="server" EnableViewState="false" >
                <AnonymousTemplate>
                    [ <a href="~/Account/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" OnLoggedOut="LoginStatus1_LoggedOut" LogoutPageUrl="~/"/> ]
                </LoggedInTemplate>
</asp:LoginView>

ただし、ユーザーがログアウトしたときに、イベントハンドラーを実行できるようにしたい

OnLoggedOut="LoginStatus1_LoggedOut" 

また、ユーザー テーブルの一部の情報を編集します (たとえば、最終ログアウト時間など)。ただし、この情報を取得する方法がわかりません

FormsIdentity id = (FormsIdentity)User.Identity;

どうやら Site.Master.cs では機能しません (ユーザーはコンテキストに存在しません)。ユーザー情報を取得する他の方法はありますか? また、ユーザーが「ログアウト」をクリックしたページから情報を転送する方法 (クエリ文字列を使用するなど) はありますか?

ありがとう

4

1 に答える 1

1

このようなものをお探しですか?

System.Security.Principal.IIdentity id = HttpContext.Current.User.Identity;

または、ユーザー名のみが必要な場合...

String id = HttpContext.Current.User.Identity.Name
于 2012-09-14T20:39:36.030 に答える