gpt4 book ai didi

asp.net-mvc - ValidateAntiForgeryToken Salt 值的运行时加载

转载 作者:行者123 更新时间:2023-12-01 19:44:15 25 4
gpt4 key购买 nike

考虑一个在 [ValidateAntiForgeryToken] 指令中使用 Salt 参数的 ASP.NET MVC 应用程序。

场景是该应用程序将被许多客户使用。在编译时就知道 Salt 并不是非常可取的。

当前的策略是在 web.config 中找到 Salt 值。

[ValidateAntiForgeryToken(Salt = Config.AppSalt)]
//Config.AppSalt is a static property that reads the web.config.

这会导致编译时异常,表明 Salt 在编译时必须是 const。

An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type

如何修改应用程序以允许运行时加载 Salt,以便不必为每个客户重新加盐和重新编译应用程序?

考虑到Salt不会经常改变(如果有的话),从而消除了表单无效的可能性

最佳答案

Salt 属性是一个编译时常量。它只是将特定表单链接到特定操作方法的一种方法。例如,如果您有一个登录表单,您可能希望为此表单使用盐“Login”,以便对登录表单有效的 token 不能用于更改密码表单等。

在所有情况下,应用程序的机器 key 都会自动用作附加盐值。因此,一个应用程序的反 XSRF token 不能用于另一应用程序,即使两个盐值都显示为“登录”。机器 key 可在 Web.config <machineKey> 中设置部分。

关于asp.net-mvc - ValidateAntiForgeryToken Salt 值的运行时加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2994550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com