Asp.Net Identity中带有破折号的身份电子邮件

Y8sy

我正在使用ASP.NET MVC身份,当我添加形式为[email protected]的电子邮件时,会收到验证错误消息

用户名[email protected]无效,只能包含字母或数字。

如何更改验证,以便它可以接受电子邮件?

我的cshtml是:

@using (Html.BeginForm("Login", "Account", new { ReturnUrl = ViewBag.ReturnUrl }, FormMethod.Post, new { role = "form" }))
        {
            @Html.AntiForgeryToken()

            <div class="reg-header">
                <h2>Register</h2>
            </div>
            <fieldset>
                @if (ViewBag.IsRegister)
                {
                    @Html.ValidationSummary(true, "", new { @class = "text-danger" })
                }
                <div class="margin-bottom-20">
                    @Html.LabelFor(m => m.RegisterViewModel.FirstName)<br />
                    <div class="input-group">
                        <span class="input-group-addon"><i class="fa fa-user"></i></span>
                        @Html.TextBoxFor(m => m.RegisterViewModel.FirstName, new { @class = "form-control" })
                    </div>
                    @Html.ValidationMessageFor(m => m.RegisterViewModel.FirstName, "", new { @class = "text-danger" })
                </div>

                <div class="margin-bottom-20">
                    @Html.LabelFor(m => m.RegisterViewModel.LastName)<br />
                    <div class="input-group">
                        <span class="input-group-addon"><i class="fa fa-user"></i></span>
                        @Html.TextBoxFor(m => m.RegisterViewModel.LastName, new { @class = "form-control" })
                    </div>
                    @Html.ValidationMessageFor(m => m.RegisterViewModel.LastName, "", new { @class = "text-danger" })
                </div>

                <div class="margin-bottom-20">
                    @Html.LabelFor(m => m.RegisterViewModel.Email)<br />
                    <div class="input-group">
                        <span class="input-group-addon"><i class="fa fa-user"></i></span>
                        @Html.TextBoxFor(m => m.RegisterViewModel.Email, new { @class = "form-control" })
                    </div>
                    @Html.ValidationMessageFor(m => m.RegisterViewModel.Email, "", new { @class = "text-danger" })
                </div>

                <div class="margin-bottom-20">
                    @Html.LabelFor(m => m.RegisterViewModel.Password)<br />
                    <div class="input-group ">
                        <span class="input-group-addon"><i class="fa fa-lock"></i></span>
                        @Html.PasswordFor(m => m.RegisterViewModel.Password, new { @class = "form-control" })

                    </div>
                    @Html.ValidationMessageFor(m => m.RegisterViewModel.Password, "", new { @class = "text-danger" })
                </div>

                <div class="margin-bottom-20">
                    @Html.LabelFor(m => m.RegisterViewModel.ConfirmPassword)<br />
                    <div class="input-group">
                        <span class="input-group-addon"><i class="fa fa-lock"></i></span>
                        @Html.PasswordFor(m => m.RegisterViewModel.ConfirmPassword, new { @class = "form-control" })
                        <div class="clear"></div>
                    </div>
                    @Html.ValidationMessageFor(m => m.RegisterViewModel.ConfirmPassword, "", new { @class = "text-danger" })
                </div>
                <div class="row">

                    <div class="col-md-12">
                        <button class="btn-u" type="submit" name="command" value="Register">Register</button>
                    </div>
                </div>
            </fieldset>
        }

这是我的控制器:

                RegisterViewModel model = login.RegisterViewModel;
                var user = new ApplicationUser() { UserName = model.Email, FirstName = model.FirstName, LastName = model.LastName, UserRole = UserRole.Rider };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInAsync(user, isPersistent: false);

                    // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771
                    // Send an email with this link
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>");

                    return RedirectToLocal(returnUrl);
                    //return RedirectToAction("Index", "Home");
                }
                else
                {
                    ViewBag.ReturnUrl = returnUrl;
                    AddErrors(result);
                }
被逐出教会

默认UserValidator是在使用UserManager有一个属性AllowOnlyAlphanumericUserNames被设置为true ..你将需要重写这个允许的特殊字符。可能的解决方案是像这样用自己的实现覆盖UserManager。

public class ApplicationUserManager : UserManager<ApplicationUser>
{
    public ApplicationUserManager(IUserStore<ApplicationUser> store) : base(store)
    {
        this.UserValidator = new UserValidator<ApplicationUser>(this) { AllowOnlyAlphanumericUserNames = false };
    }
}

public class ApplicationUser : IdentityUser
{
    //Custom Properties etc.
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Asp.net Web Api查询带有破折号的字符串参数

来自分类Dev

防止没有确认电子邮件的用户使用身份2登录ASP.Net MVC

来自分类Dev

没有ASP.NET身份的电子邮件确认和密码策略

来自分类Dev

具有特殊字符的ASP.NET MVC身份电子邮件/用户名

来自分类Dev

发送带有存储在数据库中的多个附件的电子邮件(ASP.NET C#)

来自分类Dev

在ASP.NET Identity中获取通过Microsoft帐户认证的用户的电子邮件

来自分类Dev

确认电子邮件中的ASP.NET Core身份无效令牌

来自分类Dev

MVC 5-ASP.NET身份-电子邮件确认中的令牌列为空

来自分类Dev

如何更改ASP.NET Identity用户的电子邮件,而无需确认电子邮件?

来自分类Dev

发送带有ASP.NET成员资格凭证的电子邮件

来自分类Dev

发送带有附件的加密电子邮件(asp.net mvc,C#)

来自分类Dev

我如何通过带有asp.net Web Api参数的+传递电子邮件

来自分类Dev

在ASP.NET MVC中创建电子邮件模板

来自分类Dev

在 asp.net 中自动发送发票电子邮件

来自分类Dev

Javascript电子邮件验证错误(在ASP.Net中有效,而在ASP.Net MVC中无效)

来自分类Dev

如何在ASP.NET MVC5 Identity 2中添加HTML电子邮件模板以进行电子邮件确认?

来自分类Dev

如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

来自分类Dev

如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

来自分类Dev

如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

来自分类Dev

如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

来自分类Dev

在Asp.net mvc5中使用用户名代替电子邮件作为身份

来自分类Dev

ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

来自分类Dev

电子邮件令牌过期和“电子邮件已被占用”问题-Asp.net Identity 2.0 API

来自分类Dev

在ASP.NET Identity中将电子邮件设置为用户名

来自分类Dev

使ASP.NET Identity 2.0电子邮件确认令牌可用于WCF和MVC

来自分类Dev

Asp.net Identity 2.0-唯一电子邮件

来自分类Dev

Asp.Net Identity无需电子邮件即可保存用户

来自分类Dev

在Asp.net Identity核心中确认一封以上电子邮件

来自分类Dev

在ASP.NET Identity中将电子邮件设置为用户名

Related 相关文章

  1. 1

    Asp.net Web Api查询带有破折号的字符串参数

  2. 2

    防止没有确认电子邮件的用户使用身份2登录ASP.Net MVC

  3. 3

    没有ASP.NET身份的电子邮件确认和密码策略

  4. 4

    具有特殊字符的ASP.NET MVC身份电子邮件/用户名

  5. 5

    发送带有存储在数据库中的多个附件的电子邮件(ASP.NET C#)

  6. 6

    在ASP.NET Identity中获取通过Microsoft帐户认证的用户的电子邮件

  7. 7

    确认电子邮件中的ASP.NET Core身份无效令牌

  8. 8

    MVC 5-ASP.NET身份-电子邮件确认中的令牌列为空

  9. 9

    如何更改ASP.NET Identity用户的电子邮件,而无需确认电子邮件?

  10. 10

    发送带有ASP.NET成员资格凭证的电子邮件

  11. 11

    发送带有附件的加密电子邮件(asp.net mvc,C#)

  12. 12

    我如何通过带有asp.net Web Api参数的+传递电子邮件

  13. 13

    在ASP.NET MVC中创建电子邮件模板

  14. 14

    在 asp.net 中自动发送发票电子邮件

  15. 15

    Javascript电子邮件验证错误(在ASP.Net中有效,而在ASP.Net MVC中无效)

  16. 16

    如何在ASP.NET MVC5 Identity 2中添加HTML电子邮件模板以进行电子邮件确认?

  17. 17

    如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

  18. 18

    如何为具有ASP.NET Identity 2的用户添加用户电子邮件地址

  19. 19

    如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

  20. 20

    如何在ASP.NET Identity 2.0 alpha 1中使用电子邮件登录?

  21. 21

    在Asp.net mvc5中使用用户名代替电子邮件作为身份

  22. 22

    ASP.NET Identity 2电子邮件和用户名的分隔,并使用电子邮件登录

  23. 23

    电子邮件令牌过期和“电子邮件已被占用”问题-Asp.net Identity 2.0 API

  24. 24

    在ASP.NET Identity中将电子邮件设置为用户名

  25. 25

    使ASP.NET Identity 2.0电子邮件确认令牌可用于WCF和MVC

  26. 26

    Asp.net Identity 2.0-唯一电子邮件

  27. 27

    Asp.Net Identity无需电子邮件即可保存用户

  28. 28

    在Asp.net Identity核心中确认一封以上电子邮件

  29. 29

    在ASP.NET Identity中将电子邮件设置为用户名

热门标签

归档