0

我正在研究 asp.net 应用程序。

我必须开发一个功能,系统管理员应该能够发送邀请以通过电子邮件查看用户特定文档。当用户点击邀请时,系统应该能够识别用户并打开文档。

我正在考虑对每封电子邮件使用 16 位哈希密钥,并在管理员发送邀请时将它们存储在数据库中。当用户点击使用 16 位哈希键检索用户详细信息的邀请时。

但我觉得可能有更好的方法来做到这一点。

请建议我以更好的方式实现该功能。

4

2 回答 2

0

在数据库中创建一个表,其中包含

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

在此表中存储用户和文档密钥关系。

生成随机公钥 (GUID) 并将此密钥存储在此表中,并使用电子邮件、邮件、电话或任何直接安全的方式将相同的密钥发送给用户。

让文档页面在查询字符串中包含 DocumentKey。

当用户打开文档页面时,根据表中的 DocumentKey、UserKey 对用户进行身份验证。

如果 IsRead 为假,则不允许。

如果身份验证成功,请他们输入 GUID。

如果用户 ID 有效,则再次检查数据库,如果是,则打开文档并将 IsRead 标记为 true。

于 2012-04-19T19:22:12.190 回答
0

如果您的用户通常必须登录,您可能还希望在打开文档(或回答其他问题)之前单击电子邮件中的链接后强制他们登录,尤其是在文档本质上是敏感的情况下。至少您应该在他们打开文档后或经过一段时间后禁用该密钥。

电子邮件帐户一直被黑客入侵,您不希望攻击者能够单击同一链接并访问任何敏感数据。

于 2012-04-19T19:07:11.587 回答