首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET的电子邮件地址验证

ASP.NET的电子邮件地址验证
EN

Stack Overflow用户
提问于 2008-10-08 12:46:21
回答 7查看 247.4K关注 0票数 68

您使用什么来验证ASP.NET表单上的电子邮件地址。我想确保它不包含XSS漏洞。

这是ASP.NET 1.1

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-10-08 12:55:48

在ASP.NET web表单上发布的任何脚本标记都会导致您的站点抛出未处理的异常。

你可以使用asp正则表达式验证器来确认输入,只要确保你的代码在方法后面有一个if(IsValid)子句,以防你的javascript被绕过。如果您的客户端javascript被绕过,并且脚本标记被发布到您的asp.net表单,asp.net将抛出一个未处理的异常。

您可以使用类似以下内容:

代码语言:javascript
复制
<asp:RegularExpressionValidator ID="regexEmailValid" runat="server" ValidationExpression="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="tbEmail" ErrorMessage="Invalid Email Format"></asp:RegularExpressionValidator>
票数 126
EN

Stack Overflow用户

发布于 2008-11-07 12:43:00

这是我根据西蒙·约翰逊的想法创建的一个基本的电子邮件验证器。它只需要添加DNS查找的额外功能,如果需要的话。

代码语言:javascript
复制
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.Web.UI;

namespace CompanyName.Library.Web.Controls
{
    [ToolboxData("<{0}:EmailValidator runat=server></{0}:EmailValidator>")]
    public class EmailValidator : BaseValidator
    {

        protected override bool EvaluateIsValid()
        {
            string val = this.GetControlValidationValue(this.ControlToValidate);
            string pattern = @"^[a-z][a-z|0-9|]*([_][a-z|0-9]+)*([.][a-z|0-9]+([_][a-z|0-9]+)*)?@[a-z][a-z|0-9|]*\.([a-z][a-z|0-9]*(\.[a-z][a-z|0-9]*)?)$";
            Match match = Regex.Match(val.Trim(), pattern, RegexOptions.IgnoreCase);

            if (match.Success)
                return true;
            else
                return false;
        }

    }
}

更新:请不要使用原始的Regex。找一个更新的、更完整的样本。

票数 19
EN

Stack Overflow用户

发布于 2008-10-08 12:55:12

您可以使用RegularExpression验证器。ValidationExpression属性有一个按钮,您可以在Visual Studio的属性面板中按下该按钮,该面板列出了许多有用的表达式。他们使用的电子邮件地址是:

代码语言:javascript
复制
\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/182542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档