2012-01-20 5 views
1

登録後にユーザー名パスワードのペアでサインインするWebサイトのユーザーがからログインできないようにする方法を探しています複数のコンピュータ。実際に私は、ユーザーがログオンしているコンピュータを登録する方法を探していて、ユーザー名、パスワードを互いに与えないようにしています。私はasp.netと実際にすべてのウェブサイトのプログラミング言語でそれがクライアントのネットワークカードのMACアドレスを検出することは不可能であることが分かった。一方、ほとんどのユーザは動的なipsを持っているので、httpcontext.currentで検出できるブラウザ名やIPアドレスなどは私には利用できません。また、私はコンピュータ名よりも厳しいものを求めています。なぜなら、それは不幸なことではないからです。asp.netのn台以上のコンピュータからユーザーがサインインするのを防ぐ方法

ハードウェアトークンベースのソリューションを使用せずに使用できるソリューションを教えてください。 ありがとうございます。

+0

何らかのフラグを保存するためにCookieを使用できますか? –

+0

はい。ソリューションが存在する場合は、ユーザーコントロールメカニズムを変更して実装します。 – Farshid

+0

実際には、私はコンピュータが5台のコンピュータにユーザーを制限するために、iTunesが使用するメカニズムのようにsthを探していますが、asp.netにあります。 – Farshid

答えて

1

あなたができることは、1人のユーザーがタイムアウトでログインしてから各要求のタイムアウトを更新すると(おそらくデータベースまたはメモリ内のキャッシュに)記録することです。次に、isLoggedIn値が現在の(つまり、期限切れになっていない)間に、そのユーザーがログインするのを拒否します。また、明示的なログアウト時にタイムアウトを期限切れにする必要があります。

理論的には、sessionExpireイベントでタイムアウトを期限切れにすることもできますが、イベントは特に信頼できるものではないことがわかりました。タイムアウトを短くしたいので、独自のタイムアウトシナリオを使用しました。

さらに厳格な証券の場合、タイムアウトとセッションタイムアウトの間に入るユーザーと戦うために、セッションIDとブラウザーの指紋を気にするならば、タイムアウトの横に隠すこともできます。

しかし、長期的には、ユーザーがアカウントを共有できないように100%安全な方法はありません。あなたができるベストについては、の制限に「重複するユーザー」のシナリオを試して、同じアカウントを複数回同時にログオンさせるのが苦労するようにしてください。あなたはファジーな方法で同様のことを活用することができるかもしれないので、

最後には、ちょうどサイドノートとして、動的なIPは、通常、その多くの場合、(アプリケーションセッション内で変更する可能性は低い)は変更されません。

+0

ご協力いただきありがとうございます。私の最大の関心事は、同時にログオンするのではなく、アカウントを共有することです。開発中のWebサイトには、ユーザーが支払う必要がある貴重な情報が含まれています。 – Farshid

+0

ユーザーがアカウントを共有できないようにする方法はありません。少なくとも信頼できるものではありません。あなたが共有しようとするシステムは、人々が共有したい場合には簡単に処理されます。あなたはそれについて心配するのではなく、サービスを提供することにもっと集中しています。それは人々がそれを支払うことができるほどの公正な価格です。 – cdeszaq

関連する問題