混淆网址

Baz*_*oka 2 asp.net url

我正在开发一个资产管理网站,无论何时向用户发放资产,系统都会发送一个电子邮件通知,其中包含一个URL,用于向用户显示发给他的所有资产.我本可以使用查询字符串来传递用户ID,但是人们可能会滥用它来查看发给其他用户的资产.我的客户端不希望用户在单击链接时进行身份验证.所以我需要隐藏在查询字符串中传递的参数或者至少使它们模糊不清的东西.我已经阅读了关于url编码,GUID等但我不知道该怎么做.我只是个初学者.请原谅我的无知并指出我正确的方向.

bal*_*dre 6

采取你所说的,你只是一个初学者,并假设这将是公开的,你可以做最简单的方式:

在数据库中创建一个新表并调用,例如tbl_links,列只添加3

user_id (foreigner key to the user table)
guid (primary key, unique)
settings (nvarchar(250)
Run Code Online (Sandbox Code Playgroud)

当您需要发送电子邮件时,请为该用户创建一个新行,例如:

Guid guid = Guid.New();
String settings = "date_from:2012/01/01;date_to:2013/01/01";
Run Code Online (Sandbox Code Playgroud)

并将其插入数据库中,您放入电子邮件中的链接应该有guid,例如http://domain.com/info/?g= ....

您可以将Json附加到该settings列并在代码中再次将其解析为对象,如果要采用此路径,请询问新问题.

我个人使用安全算法只传递,user_id但你说你是初学者,所以我只向你展示了简单而有效的方法.


PS为了安全起见,你应该说在你的链接仅适用于在接下来的4小时内电子邮件或这样就可以防止人们为了尝试,并得到一些信息生成的GUID ....简单的添加create_date类型的列datetime和用它来查看链接是否已经过期...