UserNameまたは(できれば)ユーザーIDのいずれかを使用して、アプリケーションにログインしている特定のユーザーを判別しようとしています。私の意図は、ユーザーに基づいて自分のサイトにアップロードできるコンテンツの量を制限することです。ユーザーがドキュメントをアップロードしようとするたびに、現在アップロードしているすべてのドキュメントの数を取得したいと思います。テスト実行として、クエリを作成する前にユーザーを識別できるように、フォームにラベルを追加しました。
// validate user. If they are not authenticated, do not let them upload files
if (!HttpContext.Current.User.Identity.IsAuthenticated || !HttpContext.Current.User.IsInRole("Administrator"))
{
uploadLabel.Visible = false;
user.Text = Membership.GetUser().UserName; // this line should output the username
mapUpload.Visible = false;
uploadButton.Visible = false;
}
ログイン時に他のすべてのフィールドが表示されないため、認証ロジックが機能することはわかっています。さらに、Membership.GetUser()。UserNameには、ユーザーがIsAuthenticatedの場合にのみ値があります。そうしないと、nullポインタ例外が発生します。コードが呼び出されると、Membership.GetUser()。UserNameがラベルを空のテキスト文字列に設定しているように見えます。
現在ログインしているユーザーの情報を取得する別の方法はありますか?前述のように、私の最終的な目標は、次の情報を使用してクエリを記述できるようにすることです。
SELECT COUNT(DocumentID) FROM Documents WHERE UserID=@UserID
よろしくお願いします。
ビック