我正在使用实体框架在我的系统中验证和注册新用户。我想知道如何将实体以及其他 .NET 包的默认返回消息更改为另一种文化,例如西班牙语。
identity 的英文输出示例:
用户名“[电子邮件受保护]”已被占用。
因此,直接提供来自数据库或实体框架(如实体框架)的返回是不安全的。 例如,如果您直接提供查询的返回结果,那么您也会共享一个可能的错误。这样的错误消息可能包含您不想与最终用户共享的信息,例如数据库的结构,这些信息可以在 SQL 注入期间为潜在的攻击者提供帮助。
在这种情况下,您可以创建一种中间件,例如 API 端点或服务。您首先运行查询,然后评估该值并决定中间件应返回什么,例如“用户名‘[电子邮件受保护]’已被占用”。在查询和返回值之间,您可以执行不同的任务,例如翻译和错误处理。
我在这里制作了一个代码示例,也许可以帮助您:
string CheckIfUserExists(string language, string email)
if email exists:
if language == "en":
reutnr "Sorry email taken"
if language == "de":
return "Entschuldigung die Emeil ist vergeben"
更好的解决方案是服务器仅返回 0(未采用)或 1(已采用)。客户端向服务器发出请求,如果返回值为 1,则客户端会以正确的语言呈现相应的消息。
我希望这能为您解决问题,如果您有任何疑问,请联系我