Asp.net IDataProtector 的核心用途字符串
Asp.net core purposed string for IDataProtector
"使用数据保护 API 的组件的命名空间和类型名称是一个很好的经验法则,因为在实践中,此信息永远不会冲突。" - 微软文档
我想使用 data provider
保护一些 URL
数据。
我应该为 CreateProtector
上的每个 controller
使用不同用途的字符串吗?
如果我与控制器共享任何数据,那么在取消保护数据时显然会出现异常。
那么,我应该为所有控制器使用 unique purposed string
还是应该为每个控制器使用唯一的专用字符串?
Should I use a different purposed string for each controller on CreateProtector?
你问的这个问题,这个需要根据你的需要来决定。一般来说,目的字符串就足够了。
微软文档:
When you create a protector you must provide one or more Purpose Strings. A purpose string provides isolation between consumers. For example, a protector created with a purpose string of "green" wouldn't be able to unprotect data provided by a protector with a purpose of "purple".
我认为这只是针对您当前的应用,提供的数据保护功能,仅用于生成和验证数据。
假设webappA和webappB中使用的字符串都是string1
,webappA中生成的受保护字符串无法在webappB中解析。
这说明还是比较安全的,所以可以在不同的controller中使用不同的目的字符串。只有在解析的时候,对应的controller才需要使用对应的purpose string。
"使用数据保护 API 的组件的命名空间和类型名称是一个很好的经验法则,因为在实践中,此信息永远不会冲突。" - 微软文档
我想使用 data provider
保护一些 URL
数据。
我应该为 CreateProtector
上的每个 controller
使用不同用途的字符串吗?
如果我与控制器共享任何数据,那么在取消保护数据时显然会出现异常。
那么,我应该为所有控制器使用 unique purposed string
还是应该为每个控制器使用唯一的专用字符串?
Should I use a different purposed string for each controller on CreateProtector?
你问的这个问题,这个需要根据你的需要来决定。一般来说,目的字符串就足够了。
微软文档:
When you create a protector you must provide one or more Purpose Strings. A purpose string provides isolation between consumers. For example, a protector created with a purpose string of "green" wouldn't be able to unprotect data provided by a protector with a purpose of "purple".
我认为这只是针对您当前的应用,提供的数据保护功能,仅用于生成和验证数据。
假设webappA和webappB中使用的字符串都是string1
,webappA中生成的受保护字符串无法在webappB中解析。
这说明还是比较安全的,所以可以在不同的controller中使用不同的目的字符串。只有在解析的时候,对应的controller才需要使用对应的purpose string。