我在网址中添加了Hashed urltokens以停止篡改。
这是Action的扩展方法:
public static string ActionHashed(this UrlHelper urlHelper, string actionName, object routeValues)
{
bool generateToken = mIsSecureLinks;
RouteValueDictionary rvd = new RouteValueDictionary(routeValues);
if (generateToken)
{
string token = TokenUtility.generateUrlToken("", actionName, rvd, tokenPassword);
rvd.Add("urltoken", token);
}
string scheme = urlHelper.RequestContext.HttpContext.Request.Url.Scheme;
return urlHelper.Action(actionName, null, rvd, scheme, null);
}
那么如何将此哈希添加到FormMethod.Get生成的URL?
非常感谢。
EDIT1
回应Chris的评论:
我会检查“Html.AntiForgeryToken()”等。看起来是我的方法的补充,因为它保护表格POST,我的方法专注于GET。
我的一个问题是阻止用户使用诸如报告/列表/ {id}之类的网址,其中id = CustomerId,因为这是一个多用户系统,我不想让人们四处游戏,看看他们是否可以列出报告对于他们无权查看的客户。允许他们查询他们有权查看的内容的所有功能都在页面超链接等内。有人可能认为GUID作为主键比整数更好,因为邀请较少。此解决方案的另一个方面是“受保护”链接不会在当前浏览器上下文之外工作。显然,有一些人需要工作的链接,而一个人只是保留这些无保护的链接(没有动作属性)。
任何想法都赞赏。
一直在努力学习。