Tag: asp.net identity

如何在ASP .NET MVC 5中为AspNetUser创建SecurityStamp

当我通过Register操作创建用户时,应用程序用户运行SecurityStamp。 当我添加用户时: if (!context.Users.Any()) { System.Diagnostics.Debug.WriteLine(“INSIDE”); var hasher = new PasswordHasher(); try { var users = new List { new ApplicationUser{PasswordHash = hasher.HashPassword(“TestPass44!”), Email = “informatyka4444@wp.pl”, UserName = “informatyka4444@wp.pl”}, new ApplicationUser{PasswordHash = hasher.HashPassword(“TestPass44!”), Email = “informatyka4445@wp.pl”, UserName = “informatyka4445@wp.pl”} }; users.ForEach(user => context.Users.AddOrUpdate(user)); context.SaveChanges(); } catch (DbEntityValidationException e) { System.Diagnostics.Debug.WriteLine(“EXC: “); foreach (DbEntityValidationResult result in […]

ASP MVC 5中的角色管理(Microsoft.AspNet.Identity)

在ASP MVC5 RC我没有让角色系统工作。 我的数据库有所有需要的表存在一个角色,但校对用户是否在角色中总是返回false(没有SQLexception或其他东西)! 我是否需要在某处激活IPrincipal角色系统? 测试代码: AccountController accCont = new AccountController(); // check role exist : result = true var roleExist = await accCont.IdentityManager.Roles.RoleExistsAsync(“61c84919-72e2-4114-9520-83a3e5f09de1”); // try find role by name : result = role object var role = await accCont.IdentityManager.Roles.FindRoleByNameAsync(“ProjectAdministrator”); // check with AccountController instance : result = true var exist = await accCont.IdentityManager.Roles.IsUserInRoleAsync(User.Identity.GetUserId(), role.Id); […]

通过ASP.NET身份2中的UserManager.Update()更新用户

我在MVC 5项目中使用ASP.NET Identity 2 ,我想使用UserManager.Update()方法更新Student数据。 但是,当我从ApplicationUser类inheritance时,我需要在调用update方法之前将Student映射到ApplicationUser 。 另一方面,当使用我也用于创建新Student的方法时,由于并发性而导致错误,因为我创建了一个新实例而不是更新。 由于我无法使用AutoMapper解决问题,我需要一个稳定的修复来解决问题,而无需AutoMapper 。 能否请您澄清如何解决这个问题? 我将StudentViewModel传递给StudentViewModel中的Update方法,然后我需要将它映射到Student,然后将它们作为ApplicationUser传递给UserManager.Update()方法。 另一方面,我想知道我是否应该在Controller阶段检索并发送密码,而不是为安全问题转到View? 你能否告诉我这个问题(在用户更新期间我不更新密码,我必须在数据库中保留用户的密码)。 任何帮助,将不胜感激。 实体类: public class ApplicationUser : IdentityUser, IUser { public string Name { get; set; } public string Surname { get; set; } //code omitted for brevity } public class Student: ApplicationUser { public int? Number { get; set; } } […]

使用Identity 2.0数据库来validationASP.NET Core 1.0应用程序

我正在尝试创建一个新的ASP.NET Core 1.0 Web应用程序,我希望它使用我已经设置的身份validation表。 这些表最初是由使用Microsoft.ASPNet.Identity.EntityFramework 2.2.0的ASP.NET 4.6 Web应用程序创建的。 看起来Microsoft.AspNetCore.Identity.EntityFrameworkCore中的内容发生了变化,因为新的Core 1.0应用程序在尝试登录时抛出此错误: 处理请求时数据库操作失败。 SqlException:无效的列名称’NormalizedUserName’。 列名称’ConcurrencyStamp’无效。 列名称“LockoutEnd”无效。 列名称“NormalizedEmail”无效。 列名称“NormalizedUserName”无效。 project.json是开箱即用的,看起来像这样: “dependencies”: { “Microsoft.NETCore.App”: { “version”: “1.0.0”, “type”: “platform” }, “Microsoft.AspNetCore.Authentication.Cookies”: “1.0.0”, “Microsoft.AspNetCore.Diagnostics”: “1.0.0”, “Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore”: “1.0.0”, “Microsoft.AspNetCore.Identity.EntityFrameworkCore”: “1.0.0”, “Microsoft.AspNetCore.Mvc”: “1.0.0”, “Microsoft.AspNetCore.Razor.Tools”: { “version”: “1.0.0-preview2-final”, “type”: “build” }, “Microsoft.AspNetCore.Server.IISIntegration”: “1.0.0”, “Microsoft.AspNetCore.Server.Kestrel”: “1.0.0”, “Microsoft.AspNetCore.StaticFiles”: “1.0.0”, “Microsoft.EntityFrameworkCore.SqlServer”: “1.0.0”, “Microsoft.EntityFrameworkCore.SqlServer.Design”: { “version”: “1.0.0”, […]

使用ASP Identity 2 POST到/ Token端点时始终收到’invalid_client’错误

大约一个月前,我有一个项目与ASP Identity OAuth完美配合。 我将使用grant_type,username和password向/ Token端点发送POST请求,所有这些都是花花公子。 我最近开始了一个基于Visual Studio 2013 RC2的SPA模板的新项目。 它与旧模板有点不同。 身份validation设置为非常基本的默认值, OAuthOptions = new OAuthAuthorizationServerOptions { TokenEndpointPath = new PathString(“/Token”), //AuthorizeEndpointPath = new PathString(“/Account/Authorize”), Provider = new ApplicationOAuthProvider(PublicClientId), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14), AllowInsecureHttp = true }; 默认模板没有任何重大变化。 我可以通过我实现的Web API控制器方法成功注册帐户; // POST: /Account/Register [HttpPost] [AllowAnonymous] public async Task Register(RegisterBindingModel model) { if (ModelState.IsValid) { var user = […]

ASP.NET核心,更改默认重定向未授权

我试图重定向到ASP.NET MVC6中的另一个登录URL 我的帐户控制器登录方法有一个Route属性来更改URL。 [HttpGet] [AllowAnonymous] [Route(“login”)] public IActionResult Login(string returnUrl = null) { this.ViewData[“ReturnUrl”] = returnUrl; return this.View(); } 当试图访问一个unathorized页面时,我被重定向到无效的URL,它应该只是/login但是我得到http://localhost/Account/Login?ReturnUrl=%2Fhome%2Findex 我已经配置了cookie身份validation路径,如下所示: services.Configure(opt => { opt.LoginPath = new PathString(“/login”); }); 我添加了一个默认filter,以确保默认情况下所有URL都需要身份validation。 services.AddMvc( options => { options.Filters.Add(new AuthorizeFilter(new AuthorizationPolicyBuilder().RequireAuthenticatedUser().Build())); }); 我已经检查过url /login确实加载了登录页面,而/account/login没有按预期加载。 编辑:我按原样离开了路径,(除了更改默认控制器和操作) app.UseMvc(routes => { routes.MapRoute( name: “default”, template: “{controller=Site}/{action=Site}/{id?}”); });

如何在ASP.NET Identity 1.1中每晚构建一个TokenProvider?

我正在尝试使用ASP.NET Identity 1.1的每晚构建实现密码重置function。 有一个UserManager.GetPasswordResetToken方法,但它会抛出exception“没有注册ITokenProvider”。 ASP.NET身份中是否有内置的令牌提供程序? 如果是,我如何注册? 如果不是,我该如何实施呢? 将是1.1中的默认令牌提供程序。 发布? 最后一个问题,是否有估计的1.1发布日期?

获取ASP.NET标识中的登录用户列表

我开始使用ASP.NET Identity,但我一直无法找到获取当前登录用户列表的方法。 为了获得所有用户我只能用户 new ApplicationDbContext().Users ApplicationDbContext附带ASP.NET Web应用程序模板,并扩展IdentityDbContext 。 但IdentityUser类似乎没有任何方法来查询登录状态。 谢谢你的任何指示。

在Asp.Net Identtity中使用UserStore和UserManager有什么区别?

我对Asp.Net Identity非常新,如果这个问题看起来很愚蠢,请耐心等待。 因此,当我在Microsoft网站上阅读下面链接中的UserStore类和UserManager类的定义时,看起来这两个类都定义了围绕用户的操作(如添加,查找,删除和修改)。 那我什么时候用一个呢? https://msdn.microsoft.com/en-us/library/dn315446(v=vs.108).aspx https://msdn.microsoft.com/en-us/library/dn613290(v=vs.108)的.aspx

如何设置asp.net标识cookie到期时间

我使用Asp.Net Identity来控制我的应用程序的授权。 现在,我需要这样做:如果用户在30分钟内没有运行,请跳转到登录页面,当他登录时不选择“isPersistent”复选框。 并且,如果他选择“isPersistent”复选框,请将Cookie的到期日期设置为14天。 我尝试通过像这样更改Startup.Auth.cs来做到这一点: public void ConfigureAuth(IAppBuilder app) { app.UseCookieAuthentication(new CookieAuthenticationOptions { AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie, LoginPath = new PathString(“/Account/Login”), SlidingExpiration = true, CookieName = WebHelpers.ConstStrings.AUTHCOOKIESNAME }); } 和SignIn代码如下: private async Task SignInAsync(User user, bool isPersistent) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); if (isPersistent) { AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity); […]