Tag: asp.net identity

使用具有entity framework6的存储库模式更新记录

我正在编写一个简单的博客应用程序,并尝试在我的通用存储库模式中建立CRUD操作,但我的更新方法出现错误,说: ‘System.Data.Entity.DbSet’不包含’Entry’的定义,并且没有扩展方法’Entry’可以找到接受类型’System.Data.Entity.DbSet’的第一个参数(你是否缺少using指令)或汇编参考?) 我跟着一篇post解释了如何通过在DbContext上添加额外的间接级别来“伪造”Entry()。 但是在MVC 5中我们inheritance自: IdentityDbContext而不是DbContext。 我确实尝试实现作者修复,但错误仍然存​​在。 我的问题 如何使用IdentityDbContext将更新方法添加到Entity Framework 6中的存储库? 如果我们不应该这样做,那么如何使用这种模式更新记录? 我应该注意到其他所有方法都按预期工作。 我的通用存储库: public class BlogEngineRepository : IRepository where T : class { protected DbSet DbSet; public BlogEngineRepository(DbContext dataContext) { DbSet = dataContext.Set(); } #region IRepository Members public void Insert(T entity) { DbSet.Add(entity); } public void Delete(T entity) { DbSet.Remove(entity); } public void Update(T […]

mvc 5检查用户角色

如何在mvc 5中找到登录用户的角色? 我通过此代码创建了用户 private bool AddUserAndRole() { IdentityResult ir; var rm = new RoleManager (new RoleStore(new ApplicationDbContext())); ir = rm.Create(new IdentityRole(“admin”)); var user = new ApplicationUser() { UserName = “Admin” }; var result = UserManager.Create(user, “somepassword”); UserManager.AddToRole(user.Id, “admin”); return true; } 我在该网站上登录之后。 如何在控制器中我可以检查该用户是否有角色==“admin”? 我发现只有一种看起来不那么快的方法。 var rm = new RoleManager(new RoleStore(new ApplicationDbContext())); var role = rm.FindByName(“admin”); […]

如何用asp.net身份创建交易?

我在做注册,我要求5件事: 全名,EMAILID,密码,ContactNumber,性别 现在使用寄存器方法存储的emailid和密码,并在以下两个链接中给出: public async Task Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; using var context = new MyEntities()) { using (var transaction = context.Database.BeginTransaction()) { try { var DataModel = new UserMaster(); DataModel.Gender = model.Gender.ToString(); DataModel.Name = string.Empty; var result = await […]

在使用facebook或twitter授权后,存储并检索为用户收到的令牌

嗨我正在尝试编写一个MVC5应用程序,该应用程序能够存储在使用facebook或twitter授权后为用户收到的令牌。 我想将它存储在数据库而不是cookie中,并将其用于用户未来的任何API请求和登录尝试,以便每当他们尝试使用Facebook登录时,都不会提示他们使用Facebook或Twitter进行授权。方法或尝试访问个人资料信息。 查看成员资格数据库,我可以看到有一个名为AspNetTokens的表没有被使用 – 所以有什么我错过了我可以使用它的地方吗?

身份密码重置令牌无效

我正在编写MVC 5并使用Identity 2.0。 现在我想重置密码。 但我总是得到重置密码令牌“无效令牌”错误。 public class AccountController : Controller { public UserManager UserManager { get; private set; } public AccountController() : this(new UserManager(new UserStore(new ApplicationDbContext()))) { } 我设置了DataProtectorTokenProvider, public AccountController(UserManager userManager) { //usermanager config userManager.PasswordValidator = new PasswordValidator { RequiredLength = 5 }; userManager.EmailService = new IddaaWebSite.Controllers.MemberShip.MemberShipComponents.EmailService(); var provider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider(); userManager.UserTokenProvider = […]

ASP.NET Web窗体和标识:将IdentityModels.cs移动到另一个项目

我正在尝试将IdentityModels.cs移动到另一个项目,以使网站与数据访问层保持分离。 我遵循了这个教程: http : //blog.rebuildall.net/2013/10/22/Moving_ASP_NET_Identity_model_into_another_assembly 并且还在这里检查了这个问题: 如何将MVC 5 IdentityModels.cs移动到单独的程序集中 但我仍然感到困惑,因为IdentityModels引用另一个名为ApplicationUserManager的类,如下所示: public class ApplicationUser : IdentityUser { public ClaimsIdentity GenerateUserIdentity(ApplicationUserManager manager) { //code removed for simplicity } } 当我去搜索那个类的哪个地方时,我发现它位于一个类中的网站项目中:App_Start / IdentityConfig.cs //…More code in the upper section public class SmsService : IIdentityMessageService { public Task SendAsync(IdentityMessage message) { // Plug in your SMS service here to […]

ASP.NET Identity(使用IdentityServer4)获取外部资源oauth访问令牌

我已经浏览了identityServer4的文档,我已将其设置为使用Microsoft Office 365作为登录提供程序。 当用户登录时,我想创建一个按钮,他可以让我的应用程序使用graph.microsoft.com的webhooks api订阅他的日历事件 startup.cs中的代码 app.UseMicrosoftAccountAuthentication(new MicrosoftAccountOptions { AuthenticationScheme = “Microsoft”, DisplayName = “Microsoft”, SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme, ClientId = “CLIENT ID”, ClientSecret = “CLIENT SECRET”, CallbackPath = new PathString(“/signin-microsoft”), Events = new OAuthEvents { OnCreatingTicket = context => { redisCache.Set(“AccessToken”, context.AccessToken.GetBytes(), new DistributedCacheEntryOptions { AbsoluteExpiration = DateTimeOffset.UtcNow.AddDays(3) }); return Task.FromResult(context); } } Scope = […]

使用自定义角色在ASP.NET标识中初始化RoleManager

我使用这里的教程将用户数据库的主键从字符串更改为int,但是我在初始化Role Manager时遇到了困难。 它曾经使用过初始化 var roleManager = new RoleManager(new RoleStore(context)); 如何使用新数据创建角色管理器? 更新:我正在使用MVC 5和EF 6。

从基础asp.net标识用户创建inheritance用户

我有问题,我想在示例中创建N,两个用户对象(例如客户和供应商),这些都是asp.net IdentityUser对象所固有的。 除了来自IdentityUser的数据之外,这些对象具有非常不同的附加数据。 我想使用IdentityUser用户,因为这为我提供了一种灵活的方式来处理身份validation和授权。 这个例子已被删除,但应提供有关无法创建具体用户的充分信息(例如供应商的客户)。 我似乎需要使用UserManager对象,因为它还负责创建例如密码哈希和其他安全信息。 我收到以下错误: {“附加’供应商’类型的实体失败,因为同一类型的另一个实体已经具有相同的主键值。当使用’附加’方法或将实体的状态设置为’未更改’或’已修改时,可能会发生这种情况’如果图中的任何实体具有冲突的键值。这可能是因为某些实体是新的并且还没有接收到数据库生成的键值。在这种情况下,使用“添加”方法或“添加”实体状态来跟踪图表然后根据需要将非新实体的状态设置为“未更改”或“已修改”。“} IdentityUser固有的类 public class Customer : IdentityUser { public string CustomerProperty { get; set; } } public class Supplier : IdentityUser { public string SupplierProperty { get; set; } } 数据库上下文类 public class ApplicationDbContext : IdentityDbContext { public ApplicationDbContext() : base(“ApplicationDbContext”) { Database.SetInitializer(new ApplicationDbInitializer()); } public DbSet CustomerCollection […]

ASP.NET身份提供程序SignInManager保持返回失败

我对MVC5的标准ASP身份提供程序有疑问。 我一登录方法: await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false); 不断回来失败。 所以我开始调试,通过使用: UserManager.FindByEmail(model.Email); 这将为我的用户尝试登录返回有效的UserID。然后我使用: SignInManager.UserManager.CheckPassword(UserIDObtainedFromFind, model.Password); 这返回true,这意味着我提供的密码是有效的…. 关于我如何跟踪,调试SignInManager.PasswordSignInAsync方法以查看它失败的地方的任何想法?