0

asp:Login コントロールを使用すると、ユーザーは適切にログインできますが、ログイン コントロールの LoggedIn イベント内でユーザーのプロファイル情報を確認しているときに、プロファイル オブジェクトのすべてのフィールドが空です。また、User.Identity.IsAuthenticated は常に false を返します。

ただし、これらの問題はすべて、別のページに移動するときに解決しました。

User.Identity.IsAuthenticated が false を返すのはなぜですか? また、ログイン コントロールの LoggedIn イベント内でユーザーのプロファイル情報を取得する方法はありますか?

4

2 に答える 2

1

ログイン後、フォームは次のページにリダイレクトして、ユーザー プリンシパル情報 (ページ/コンテキストのユーザー プロパティ) を入力する必要があります。そのため、コントロールの UserName を使用することが言及されました。

リダイレクト後までお待ちいただけますか?直接アクセスする必要がありますか? Login1.UserName動作するはずです。そこにデバッガーを置き、値が設定されていることを確認してください。

あなたも試すことができます:HttpContext.Current.Profile.GetProfile( ... )

于 2010-04-01T17:52:44.383 に答える
0

LoggedIn イベントでは、ユーザー ID とプロファイル ID はまだ更新されていません。代わりにこれを試してください:

ユーザーにアクセスするには:

MembershipUser aUser = Membership.GetUser(Login1.UserName);
// work with aUser ...

プロファイルにアクセスするには:

ProfileCommon aProfile = Profile.GetProfile(Login1.UserName);
// work with the member fields in aProfile ...

(Login1 はログイン コントロールです。)

于 2010-04-01T17:12:43.237 に答える