C# ASP 网络验证如何保护字符串免受 www

c# asp net validation how protect string from www

提问人:dodo 提问时间:11/22/2022 更新时间:11/22/2022 访问量:26

问:

我创建了简单的用户模型。我需要保护 FirstName 和 LastName,用户无法像 www.somedomain.com 一样使用 www 发布一些网络地址。

怎么做呢?

 public class UserModel
    {
        public int UserId { get; set; }

        [Required]
        public string Login { get; set; }

        public string Password { get; set; }

        [Required]
        public string FirstName { get; set; }

        [Required]
        public string LastName { get; set; }
      }
C# ASP.NET-MVC 验证

评论


答:

0赞 riffnl 11/22/2022 #1

您可以使用 RegularExpression 验证规则执行此操作。因此,您需要一个标识 URL 的正则表达式,并且您希望得到否定的响应。您可以在此处阅读有关此内容的所有信息:https://learn.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.regularexpressionattribute?view=net-7.0

然而。虽然我理解你这样做的理由,但你可能要考虑一个(非常人性化的)问题:为什么?这更多的是供您考虑,而不是真正的技术。

如果一个人真的想为实例 stackoverflow 输入域名。我也可以尝试名字姓氏并完成它。 其次,如果你在这个兔子洞里跌得太远,你可能会想打破现实世界的规则。例如,您想过滤特定的(脏话)单词。或者 Lastname 应至少为 2 个字符(用于使用 A、B、C) 测试用户。StackOverflowCom

但在现实世界中,这种情况可能会发生,一些(非英语)国家/地区可能有(英语)的名字或姓氏,例如脏话。 除此之外,还有数以百万计的人实际上只有一个字符的名字或姓氏。

因此,尽管我真的理解您的要求,但我会选择保留所需的属性并完成它。