ASP.NET MVC 标识。无法向具有特殊字符的用户添加角色

康纳8630

在我的 MVC Web 应用程序中,我将 ASP 身份用于用户登录以及基于角色的授权。

我面临的问题是使用具有特殊字符的电子邮件向用户添加角色。例如。test'[email protected]

我可以毫无问题地创建/注册具有特殊字符的用户,只有当我尝试向该特定用户添加角色时才会出现问题。

我尝试将身份配置文件更改为用户验证器

  manager.UserValidator = new UserValidator<ApplicationUser>(manager)
        {
            AllowOnlyAlphanumericUserNames = false,
            RequireUniqueEmail = true
        };

这是向用户添加角色的代码。

 [HttpPost]
    [ValidateAntiForgeryToken]
    public ActionResult RoleAddToUser(string UserName, string RoleName)
    {
        var context = new HolidayTracker.Models.ApplicationDbContext();

        if (context == null)
        {
            throw new ArgumentNullException("context", "Context must not be null.");
        }

        ApplicationUser user = context.Users.Where(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();

        var userStore = new UserStore<ApplicationUser>(context);
        var userManager = new UserManager<ApplicationUser>(userStore);
        userManager.AddToRole(user.Id, RoleName);


        ViewBag.Message = "Role created successfully !";

        // Repopulate Dropdown Lists
        var rolelist = context.Roles.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name, Text = rr.Name }).ToList();
        ViewBag.Roles = rolelist;
        var userlist = context.Users.OrderBy(u => u.UserName).ToList().Select(uu =>
        new SelectListItem { Value = uu.UserName, Text = uu.UserName }).ToList();
        ViewBag.Users = userlist;

        return View("Index");
    }

我添加了断点并且操作成功完成,但我认为问题是正在创建角色,但不是为用户名中的特定字符创建的。即它在添加角色之前用其他字符替换“'”,因此为什么没有将该角色分配给该用户。

尽管用户名中有特殊字符,但预期的结果是将角色添加到用户。

注意:截至目前,这似乎是撇号的问题。用户也基于电子邮件。

康纳8630

所以多亏了@CodeCaster 的帮助,我才能够找到路由问题并添加了一个验证器。

  public ActionResult RoleAddToUser(string UserName, string RoleName)
    {
        var context = new HolidayTracker.Models.ApplicationDbContext();

        if (context == null)
        {
            throw new ArgumentNullException("context", "Context must not be null.");
        }

        ApplicationUser user = context.Users.Where(u => u.UserName.Equals(UserName, StringComparison.CurrentCultureIgnoreCase)).FirstOrDefault();

        var userStore = new UserStore<ApplicationUser>(context);
        var userManager = new UserManager<ApplicationUser>(userStore);
        userManager.UserValidator = new UserValidator<ApplicationUser>(userManager) { AllowOnlyAlphanumericUserNames = false };
        userManager.AddToRole(user.Id, RoleName);
        var Check = userManager.AddToRole(user.Id, RoleName);

        ViewBag.Message = "Role created successfully !";

        // Repopulate Dropdown Lists
        var rolelist = context.Roles.OrderBy(r => r.Name).ToList().Select(rr => new SelectListItem { Value = rr.Name, Text = rr.Name }).ToList();
        ViewBag.Roles = rolelist;
        var userlist = context.Users.OrderBy(u => u.UserName).ToList().Select(uu =>
        new SelectListItem { Value = uu.UserName, Text = uu.UserName }).ToList();
        ViewBag.Users = userlist;

        return View("Index");
    }

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有ASP.NET标识的MVC 5-用户登录时获取声明

来自分类Dev

如何在ASP.NET MVC 5中列出具有角色名称的用户

来自分类Dev

ASP.NET MVC或者基于用户角色的渲染EditorFor

来自分类Dev

ASP.net MVC + ASP.net身份播种角色和用户

来自分类Dev

ASP.NET MVC找不到用户

来自分类Dev

ASP.NET MVC授权具有多个角色的用户

来自分类Dev

ASP.NET MVC无法流文件

来自分类Dev

LinqToTwitter用户授权ASP.NET MVC

来自分类Dev

ASP.NET MVC 5 Identity 2.0,Windows Auth,具有角色属性的用户模型

来自分类Dev

无法自动登录asp.net MVC

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

具有MVC Asp.net身份角色的用户列表

来自分类Dev

如何添加简单的用户角色-ASP.NET MVC C#

来自分类Dev

在ASP .NET MVC中更改角色权限

来自分类Dev

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

来自分类Dev

注销指定用户asp.net mvc

来自分类Dev

如何向ASP.NET MVC用户添加更多用户数据

来自分类Dev

ASP.Net MVC 5检查用户角色的_Layout

来自分类Dev

Asp.net MVC和用户

来自分类Dev

ASP.NET MVC找不到用户

来自分类Dev

ASP.NET MVC无法流文件

来自分类Dev

LinqToTwitter用户授权ASP.NET MVC

来自分类Dev

具有ASP.net MVC的自定义角色提供程序-更改角色

来自分类Dev

Asp.net MVC 5,Identity 2.0无法向用户添加角色

来自分类Dev

ASP.NET(MVC)用户,角色和角色中的用户

来自分类Dev

角色/用户的ASP.NET MVC黑名单

来自分类Dev

无法修复 ASP.NET MVC 验证

来自分类Dev

ASP.NET MVC 用户使用

来自分类Dev

向 ASP.NET MVC 视图添加字段