2012-03-02 17 views
0

私はASP.NETフォーム認証(ロール、ユーザー、メンバーシップなど)を使用しています。ASP.NETフォーム認証 - ユーザーがログインする前に一時的な一意のIDを取得できますか?

要するに、ユーザーがログインする前またはアカウントを作成する前に、ユーザーに固有のユーザーIDを与えるものを探しています。

私は、ユーザーがアカウントを作成すると仕事をする前に、サイトをある程度パーソナライズできるようにしたいと思います。彼らがクッキーをクリアすれば、仕事が失われることに気付きました。

私は自分のASP.NET Auth UserIdを使ってパーソナライズされた設定をテーブルに保存します。私は、同じ「ゲストID」を持つすべての「ゲスト」ではなく、ログインしてアカウントを作成する前でも、ユーザーがCookieベースのユーザーIDを割り当てられることを望んでいます。

アカウントやログインを作成する場合は、保存した設定を「永続的な」ユーザーIDに移行する必要がありますが、それは問題ありません。

Guidを作成してクッキーに格納することができますが、ASP.NETに既にメカニズムがある場合は、再構築を避けたいと考えています。

ありがとうございます! Dave

+0

ガイドを使用してください。それはユニークな価値になります。 –

答えて

1

Personalization and User Profiles in ASP.NET 2.0 - Handling Anonymous Usersを参照してください。

各匿名ユーザーは、最初にサイトにアクセスしたときに一意の匿名IDを取得することに注意してください。このIDはCookieに永続的に格納されます。したがって、第2のユーザが第1のユーザと同じコンピュータ上のブラウザを開くと、第2のユーザは、そのサイトによって、第1のユーザに発行されたのと同じ匿名IDを有すると見なされる。

+0

ありがとう、私が投稿する前に自分自身を検索してそのページを見つけられなかったとは信じられないが、私にそれを指摘してくれてありがとう! – Dave

-1

Asp.netユーザーごとにセッションIDを自動的に生成します。 アクティブユーザーのSessionIDを使用できます。

Session.SessionIDは、ユーザーに固有のキーを返します。 Cookieに保存されたSessionID。 Asp.NetはセッションCookieを削除しません。ユーザーのログイン後。 SessionIDとUserIdを一致させることができます。

+0

それは間違っています。まず、SessionIDが再利用できるかどうか。彼らは一意ではありません。第2に、ユーザーがサイトにアクセスするたびに新しいセッションにすることができるため、前回のIDで保存された変更は、次回に戻ったときにはそこに保存されません。それらは同じセッションIDであるかもしれませんが、これのルールはもう少し複雑です。 –

0

短い答えはいいえです。プロファイルテーブルに保存できる匿名ユーザーに割り当てられたユーザーIDはありません。ユーザーごとにカスタマイズ情報を格納する「AnonymousSettings」テーブルを作成する必要があります。一意のID(GUIDは適切な選択肢)と、匿名ユーザーを検索するために使用する独自のCookieを生成します。

ユーザーが登録すると、匿名テーブルの設定をプロファイル設定に転送できます。

関連する問題