2012-04-19 17 views
0

我正在研究asp.net應用程序。通過電子郵件發送唯一標識

我必須研究系統管理員應該能夠發送邀請以通過電子郵件查看用戶特定文檔的功能。當用戶點擊邀請時,系統應該能夠識別用戶並打開文檔。

我想在每個電子郵件中使用16位散列鍵,並在管理員發送邀請時將它們存儲在數據庫中。當用戶單擊使用16位散列鍵獲取用戶詳細信息的邀請時。

但我覺得可能有更好的方法來做到這一點。

請建議我以更好的方式實現功能。

+1

我個人喜歡你的方式 – 2012-04-19 18:59:07

+5

這不就是'Guid'的用途嗎? – 2012-04-19 18:59:08

+0

他可能只是不知道他可以做'Guid.NewGuid()。ToString()'來解決他的問題。 – 2012-04-19 19:00:31

回答

0

如果您的用戶通常需要登錄,您可能還需要迫使他們點擊打開文件之前在電子郵件中的鏈接後登錄(或回答一些其他問題),特別是如果文件是在所有敏感在自然界。至少你應該在打開文檔或經過一段時間後禁用該鍵。

電子郵件帳戶一直被黑客攻擊,您不希望攻擊者能夠點擊相同的鏈接並訪問任何敏感數據。

+0

用戶不會登錄系統。這只是通過電子郵件向用戶發送一些用戶特定的文檔。 – Naresh 2012-04-19 19:20:06

0

在數據庫中創建包含此表

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

存儲用戶和文件鍵關係的表。

生成隨機公鑰(GUID)並將此密鑰存儲在此表中,並使用電子郵件,郵件,電話或任何直接安全的方式將相同的密鑰發送給用戶。

讓文檔頁面在查詢字符串中包含DocumentKey。

當用戶打開文檔頁面時,根據表格中的DocumentKey,UserKey對用戶進行身份驗證。

如果IsRead爲false,則不允許。

如果認證成功,請求他們輸入GUID。

如果用戶標識有效,再次檢入數據庫,如果是,請打開文檔並將IsRead標記爲true。

+0

我覺得電子郵件和guid就足夠了。它應該足以驗證guid並提取用戶的電子郵件。 – Naresh 2012-04-19 19:38:04