2012-04-19 19 views
0

私はasp.netアプリケーションで作業しています。電子メールでユニークな識別子を送信します。

私は、システム管理者が電子メールでユーザー固有のドキュメントを閲覧するための招待状を送ることができる機能に取り組む必要があります。ユーザーが招待状をクリックすると、システムはユーザーを認識して文書を開くことができます。

私は各電子メールに対して16桁のハッシュキーを使用し、管理者が招待状を送信するとdbに格納することを考えています。ユーザーが16桁のハッシュキーを使用してユーザーの詳細を取得する招待状をクリックしたとき。

しかし、私はそれを行うより良い方法があるかもしれないと感じています。

より良い方法で機能を実装するよう提案してください。

+1

私は個人的にあなたの方法が好きです –

+5

「Guid」は何ですか? –

+0

彼はおそらく彼が彼の問題を解決するために 'Guid.NewGuid()。ToString()'を行うことができるとは思っていません。 –

答えて

0

ユーザーが一般的にログインする必要がある場合は、特に文書がすべて機密性が高い場合は、文書を開く前に電子メールのリンクをクリックしてログインさせる(または他の質問に回答する)本来は。最低でも、文書を開いた後、または一定の時間が経過した後で、キーを無効にする必要があります。

電子メールアカウントが常にハッキングされるため、攻撃者が同じリンクをクリックして機密データにアクセスできないようにする必要があります。

+0

ユーザーはシステムにログインしません。これは、ユーザー固有の文書を電子メールでユーザーに送信することです。 – Naresh

0

は、データベース内のこの表の

UserDocuments { UserKey, DocumentKey, GUID, IsRead (false by default)} 

ストアユーザーと文書のキー関係を含むテーブルを作成します。

ランダムな公開鍵(GUID)を生成し、このテーブルにこのキーを格納し、電子メール、メール、電話、または直接安全な方法で同じキーをユーザーに送信します。

文書ページにクエリー文字列にDocumentKeyが含まれるようにします。

ユーザーがドキュメントページを開くときに、DocumentKey、UserKeyに対してユーザーを認証します。

IsReadがfalseの場合は許可しないでください。

認証が成功すると、GUIDの入力を求められます。

また、ユーザーIDが有効である場合はデータベースをチェックインし、はいの場合はドキュメントを開き、IsReadをtrueに設定します。

+0

私は電子メールのように感じ、guidはテーブルで十分でしょう。また、guidの検証とユーザーの電子メールの抽出に十分なはずです。 – Naresh

関連する問題