你有一个ASP.Net MVC 5网站,我想检索当前用户的角色(如果有的话),并对他们采取相应的行动。我注意到了一些变化,甚至在模板中的Beta版本VS 2013之后。我目前正在使用以下代码:
//in Utilities.cs class
public static IList<string> GetUserRoles(string id)
{
if (id == null)
return null;
var UserManager = new UserManager<ApplicationU
我想在mvc 5中使用asp.net用户标识,我执行以下步骤:
1)创建mvc项目。
2)创建自己的数据库并以web.config形式更改连接字符串:
3)运行项目并创建一个新用户将相关表添加到我的数据库中。
4)在accountControler中注册了这样的代码之后,我想向用户添加一个角色:
public async Task<ActionResult> Register(RegisterViewModel model)
{
if (ModelState.IsValid)
{
var user = new Applicati
我有两个使用ASP.NET核心身份的解决方案。一个是v.2.2,另一个是3.0。它们调用用户(UserManager.IsInRole,role.Name)。代码可以在v.2.2中运行,但会抛出一个异常,"InvalidOperationException:已经有一个打开的DataReader与此命令关联,必须先关闭它。“在3.0版本中。它们都在构建两个用户列表,一个是目标角色中的用户,另一个不是目标角色中的用户。其思想是在目标角色中添加或删除用户。
我在这里搜索了Microsoft文档和一些博客,但似乎没有解决我的问题
以下是quesion中的代码:
public async
我在新的VS2013集成开发环境中创建了一个新的MVC应用程序。我在AccountController上的登录操作中添加了以下内容,因为我希望动态创建一个默认用户:
var admin = new ApplicationUser() { UserName = "administrator" };
var result = UserManager.Create(admin, "administrator");
这很有效,然后我想将这个默认用户放到一个新的默认角色中:
user = UserManager.FindByName("administrator&
我试着不添加角色来理解它是如何工作的,但也许它不会。我和Microsofts教程一起学习,但是我仍然很难理解没有角色的情况。
在我的数据库中,我有AspNet标识表和一些自定义表。是否有方法从自定义表向他们显示已登录用户的数据?我已经看过这里了,但我可能不是在寻找正确的东西。
我尝试过从上下文中获取用户电子邮件,并检查userManager是否找到该邮件,然后将其推送到列表中,但这只会返回null。
public async Task OnGetAsync()
{
var employee = from e in Context.EmpInfo
我尝试使用下面的代码获取用户的所有角色对象(即ApplicationRole而不是IdentityUserRole)。
string userId = User.Identity.GetUserId();
var RoleManager = this.HttpContext.GetOwinContext().Get<ApplicationRoleManager>();
var UserManager = this.HttpContext.GetOwinContext().Get<ApplicationUserManager>();
// var u = RoleMa
问题的上下文
在我的web应用程序中,我一直在使用ASP.NET标识。我从IdentityUser继承了用户类,从而创建了自定义用户配置文件。为了能够将角色与例如角色组连接起来,我还在我的数据库中创建了一个自定义角色类,该类继承自IdentityRole类。
我的数据库模型如下所示:
问题不在于创建一个用户。这只会起作用:
var userManager = new UserManager<User>(new UserStore<User>(_context));
var result = userManager.Create(user, password);
创
大家好,
我在为MVC5中的现有用户分配角色时遇到了一些问题,这将由管理员从只能由管理员访问的视图中完成。到目前为止,我已经在启动时创建了一个角色,并将其分配给了一个SuperUser,之后他将有权将管理员的角色授予其他特定用户。
private void createRolesAndDefaultUser()
{
ApplicationDbContext db = new ApplicationDbContext();
var roleManager = new RoleManager<IdentityRole>(new R
我发现,如果我将用户添加到ASP标识中的角色中,直到我注销并重新登录时,它才会生效。我是否需要做一些事情来刷新用户的角色而不强迫用户先注销呢?
下面是我如何将用户添加到角色中。
var userManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(new ApplicationDbContext()));
var userId = HttpContext.Current.User.Identity.GetUserId();
userManager.AddToRole(user
我试图为用户添加角色,但在此之前,我要检查它是否存在。我怎么能这么做?这是我的密码
public void AddRoleForUser(ApplicationUser obj, IdentityRole role)
{
_userManager = new ApplicationUserManager(new UserStore<ApplicationUser>(_context));
var currentUser = _userManager.FindById(obj.Id);
// before this i h
我是ASP.NET的新手,我正在做一个简单的项目来练习。我从一个简单的MVC项目开始,没有进行身份验证,因为它添加了许多我不理解的代码。
但是现在我想在我的系统中添加一个成员,所以我遵循了这个指南:
但是我不知道在哪里可以将角色添加到用户实体中。
我的Startup类如下:
public class Startup
{
public static Func<UserManager<Usuario>> UserManagerFactory { get; private set; }
public void Configurati
使用ASP.NET核心标识,我创建了一个具有UserManager.CreateAsync()的新用户,并将他们分配给具有UserManager.AddToRoleAsync的现有角色。这是可行的,因为用户和角色之间的关系存储在数据库的AspNetUserRoles表中。
但是当我使用UserManager (例如UserManager.FindByMail()方法)获取用户时,Role列表就是空的。我还尝试了EF的Include函数,如下所示:
var user = userManager.Users.Include(u => u.Roles).FirstOrDefault(u =&g
我正在将一个Asp Net .Net Framekwork迁移到Asp Net Core3。为了重置密码,我使用: var provider = new DpapiDataProtectionProvider("Sample");
UserManager.UserTokenProvider = new DataProtectorTokenProvider<MyUser, int>(
provider.Create("EmailConfirmation")); DpapiDataProtectionProvider在新环境中