- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个问题,我是身份的新手,但我仍然想知道在用户注册时为他分配角色的正确方法是什么?
我这里有一个代码:
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new ApplicationUser() { UserName = model.UserName };
RoleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(new ApplicationDbContext()));
IdentityRole role = new IdentityRole("Admin");
await RoleManager.CreateAsync(role);
// Store Gender as Claim
user.Claims.Add(new IdentityUserClaim() { ClaimType = ClaimTypes.Gender, ClaimValue = "Male" });
//user.Roles.Add(new IdentityUserRole() { RoleId=role.Id, UserId=user.Id });
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
//await UserManager.AddToRoleAsync(user.Id, "Admin");
await SignInAsync(user, isPersistent: false);
return RedirectToAction("Index", "Home");
}
else
{
AddErrors(result);
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
这只是一个测试代码,但基本上如果我使用方法 UserManager.AddToROleAsync( ...) 它会起作用,但是,它只会在添加用户之后发生,所以基本上我会往返数据库两次。
我尝试使用 user.Roles.Add(...) 进行操作,但在运行时出现错误。
所以我的问题是最有效和正确的方法是什么?
最佳答案
不知道有没有更好的办法。我通常采用与您相同的方式,首先创建角色(如果不存在),然后创建用户,最后一步将用户添加到角色中。
要使用 user.Roles.Add(...) 角色必须存在。原因是数据库(在本例中为 Entity Framework 和 SQL Server)。当仔细查看 Identity 数据库时,您会发现 AspNetRoles 和 AspNetUsers 表之间存在关系,通过 AspNetUserRoles 表具有UserId 和 RoleId 作为键。这意味着当用户尚不存在时,您不能将用户添加到角色(反之亦然)。因此,在我看来,您必须进行两次往返(如果您不直接处理上下文)。
关于c# - 在用户注册身份时为用户设置角色的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21075578/
正如标题所解释的那样。 Django 1.5 中是否有处理用户密码重置的内置方法? 即通过电子邮件重置链接? 需要我的用户拥有“忘记密码”链接。 最佳答案 就在这里。 您也可以在 中使用此表格form
我有一个用 symfony (1.2.9) 开发的网站。我想在网站上添加一个 wiki,并选择了 mediawiki。 我想以如下方式将 mediawiki 与我的网站集成: 媒体维基不会创建新用户
我想使用 abstractuser 为 Django 自定义用户模型创建一个注册表单。我不想要任何特别的东西,只想要稍后在需要时添加自定义字段的能力。 我从the docs了解到我需要: 设置AUTH
我正在构建一个独立的 couchdb 应用程序。这些被称为 couchapps。这个想法是数据库本身在端口 80 上提供服务并返回 HTML 并作为实际网站工作。这是一个非常强大的想法,我对将代码保存
我有一个由 keycloak 保护的应用程序。转到安全页面会显示 keycloak 登录页面,正确的用户/密码会给出预期的结果。 在客户端中,我已打开用户注册。现在登录页面显示一个注册链接,该链接显示
这是我将注册表单数据插入数据库的代码。此代码添加数据但也会给出解析错误,但如果用户名已存在则不会给出错误。 Notice: Undefined variable: username in C:\Pr
我被要求创建一个引擎,将我们的 SQL 数据转换为 Moodle 数据(用户、类(class)、注册)。 我遇到了需要使用 Moodle API 以编程方式注册学生而无需操作数据库的问题。 如:enr
这个问题已经有答案了: When should I use a return statement in ES6 arrow functions (6 个回答) 已关闭 4 年前。 我正在构建 Node
我正在寻找 r/shiny 的用户注册/登录代码模板。它不需要安全,只是一种根据以前的用户设置在 Shiny 的应用程序上个性化内容的方法。不想太依赖服务器服务(比如访问cookies) 我想知道是否
我知道这个问题已经被问过很多次了。我是一个新手,我不知道为什么 mysqli_num_row 不起作用。即使我尝试了调用的过程方法和 OO 方法。计数仍然是 0。帮帮我,先谢谢了。如果有任何问题请原谅
一直遵循 Flask 安全协议(protocol),使用 ORM peewee 为 Flask 博客帖子类型应用程序进行用户注册和登录表单。尽管注册存在问题,但登录却很有魅力。相关问题 How to
我正在使用 Django 开发一个服务器,并希望当用户注册时运行一个函数,该函数将使用用户名创建一个目录。具有新用户名的文件夹将保存在收藏夹中。我的代码如下: 模型.py from djang
如何在用户注册/加入时创建用户目录。 mkdir() 是用来创建目录的,但是我会在 .php 代码中的什么地方插入它。这是 .php 代码的链接:http://tinyurl.com/qjuxty8我
我想在我的 android 应用程序中实现OTP 功能。在此应用程序中,注册后用户将收到一次性密码 key 。 验证 OTP 后,用户将能够使用该 OTP 成功注册/开设帐户。我需要做什么才能实现这一
我正在使用 React Js + Redux + React Router。 用户登录/注册流程的最佳实践是什么? 为此我需要多少个 reducer :一两个(一个用于登录,一个用于注册)? 用户注册
我正在使用 WebMatrix 在我的用户数据库中创建一个表。 我的tutorial表示对确定用户注册是否有效的字段使用 BOOLEAN 数据类型,因为它允许该字段为 true 或 false。 BO
我成功地在 Tomcat 上启动了 Restcomm,并且可以看到 127.0.0.1:8080 和 127.0.0.1:8080/Click2CallAsync 应该有什么。在 Click2Call
我有一个网站,我已经设置了一个成员(member)区,我想这样做,这样当人们注册时,他们需要订阅 paypal,然后才在数据库中创建用户。 我不太了解paypal的运作方式。有人有任何指示吗?如何或从
下午好 我正在编写一个允许新闻用户在网站上注册的脚本。 简而言之,这些是我计划的步骤: register.php - 新用户填写表格,输入用户名、详细地址、公司名称和电子邮件地址。然后通过 SSL 将
这是一个非常简短的前端注册指南,但我在密码方面遇到了一个小问题。 我禁用了在用户注册时发送的带有密码生成的电子邮件: //Don't Send Notification Email To Regist
我是一名优秀的程序员,十分优秀!