ASP.NET Identity系统旨在取代以前的ASP.NET成员资格和简单成员资格系统。
更改默认 ASP.NET IdentityUser 表的表名称不起作用
我正在将 .Net Framework 4.7.2 mvc 网站升级到 ASP.NET Core (.Net8)。旧站点使用EntityFramework 6.4和Microsoft.AspNet.Identity.Core 2.2。新网站使用 EntityFrameworkCore 8.0 和
如何扩展或重写 UserManager.FindByEmail() 以使其仅返回我想要的内容?
我的登录方法如下,您会看到在使用 _userManager.FindByEmailAsync() 获取用户后,我必须再次调用我的用户,因为有几个字段需要计算:Points 和 Tokens...
如何扩展 UserManager.FindByEmail()?
我的登录方法如下,您会看到在使用 _userManager.FindByEmailAsync() 获取用户后,我必须再次调用我的用户,因为有几个字段需要计算:Points 和 Tokens...
我可以重写或扩展 UserManager.FindByEmail() 以与 SignInManager.CheckPasswordSignIn() 一起使用吗?
我的登录方法如下,您会看到在使用 _userManager.FindByEmailAsync() 获取用户后,我必须再次调用我的用户,因为有几个字段需要计算:Points 和 Tokens...
ASP.NET Core Identity 不注入 UserManager<ApplicationUser>
我有一个较旧的 asp.net core 身份数据库,我想将一个新项目(Web api)映射到它。 只是为了测试,我复制了 Models 文件夹以及上一页中的 ApplicationUser 文件...
案例1 好的 网址:https://10.0.0.21/myweb/webhome IIS 日志: 2024-06-24 08:39:52 10.0.0.21 GET /myweb/webhome 443 - 10.0.0.21 Mozilla/5.0+(Windows+NT+10.0;+WOW64;+Trident/7.0;+rv:11.0)+喜欢+壁虎 - 200 ...
使用 Asp.Net Core Identity 进行干净架构的授权和身份验证
我是第一次学习干净和垂直切片架构,如果我们使用 ASP.NET Core Ide,我很难理解授权和身份验证将在哪里适合......
如何获取 UserManager.FindByEmail() 作为选择调用以与 SignInManager.CheckPasswordSignIn() 一起使用?
我的登录方法如下,您会看到在使用 _userManager.FindByEmailAsync() 获取用户后,我必须再次调用我的用户,因为有几个字段需要计算:Points 和 Tokens...
无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Web.Mvc.ActionResult”
我正在尝试 ASP.NET MVC5 Identity 并尝试实现基于声明的身份验证。 我收到以下错误: 无法隐式转换类型 'System.Collections.Generic.IEnumer...
如何在 ASP .NET Core 2.1 中将登录页面设为默认路由?
我是 ASP .NET Core 2.1 的初学者,正在开发使用 ASP .NET Core 2.1 进行个人身份验证的项目。我想将登录页面设置为默认路由,而不是主页/索引: ...
.Net Identity 和 .Net Core Identity 的哈希算法差异
我有两个使用.Net Framework 和.Net Core 的项目,都使用相同的数据库。 该数据库具有用于登录和角色管理的用户详细信息,这是在 .Net Identity 和 .Net Core Identity 中完成的
如何使 .NET 8 的最小身份 API 与全局授权回退策略配合使用?
我的 API 正在执行全局授权策略,要求所有端点上的用户经过身份验证,除非他们明确指定其他策略或通过 [AllowAnonymous] 选择退出。 这很好用...
在 AspNetRoles 表中设置 ConcurrencyStamp 的值是多少
我需要添加一些用户角色作为数据迁移脚本的一部分。 ConcurrencyStamp 似乎是一个 GUID。有谁知道这里是否需要一些特殊的东西?或者我可以添加任何 GUID 值吗?
(WindowsPrincipal vs GenericPrincipal vs ClaimsPrincipal)的 Identity 属性
TL;博士。 我写这篇文章是为了将来可能帮助其他人在谷歌上搜索,因为我没有找到关于这种特定行为的文档,部分是希望有人能够确认(或者......
如何在单个应用程序中具有 Razor 页面和 Web API 的 ASP Net Core 应用程序上实现 AD B2C 身份验证
我正在尝试使用 AD B2C 来保护应用程序,该应用程序具有 Razor 页面和 WebAPI。 razor Pages .cs 文件使用 httpClient 向 webapi 发出请求。我已经查看了样本...
我有一个使用 dotnet 6 的 api 项目。 我使用身份,这是我的用户和角色类: 公共类应用程序用户:身份用户 { 公共虚拟 ICollection 我有一个使用 dotnet 6 的 api 项目。 我使用身份,这是我的用户和角色类: public class ApplicationUser : IdentityUser<int> { public virtual ICollection<IdentityUserRole<int>> Roles { get; } = new List<IdentityUserRole<int>>(); } public class ApplicationRole : IdentityRole<int> { public virtual ICollection<IdentityUserRole<int>> Users { get; } = new List<IdentityUserRole<int>>(); } 由此得出下表: migrationBuilder.CreateTable( name: "AspNetUserRoles", schema: "ancid", columns: table => new { UserId = table.Column<int>(type: "int", nullable: false), RoleId = table.Column<int>(type: "int", nullable: false) }, constraints: table => { //... }); 从这里我可以从 ApplicationUser 导航到 IdentityUserRole<int>。那就是我可以获得RoleId。 如果我想要角色名称,我必须将导航属性添加到 IdentityUserRole<int>。这导致: public class ApplicationUserRole : IdentityUserRole<int> { public virtual ApplicationUser User { get; } public virtual ApplicationRole Role { get; } } public class ApplicationUser : IdentityUser<int> { public virtual ICollection<ApplicationUserRole> Roles { get; } = new List<ApplicationUserRole>(); } public class ApplicationRole : IdentityRole<int> { public virtual ICollection<ApplicationUserRole> Users { get; } = new List<ApplicationUserRole>(); } 但是我得到了以下迁移(当然我在上下文中编辑了 OnModelCreating 方法): protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn<string>( name: "Discriminator", schema: "ancid", table: "AspNetUserRoles", type: "nvarchar(max)", nullable: false, defaultValue: ""); } 从这里我想,好吧,IdentityUserRole<int>已经在上下文中映射了,让我们从新的迁移开始:删除迁移目录并从头开始重新应用迁移......: migrationBuilder.CreateTable( name: "AspNetUserRoles", schema: "ancid", columns: table => new { UserId = table.Column<int>(type: "int", nullable: false), RoleId = table.Column<int>(type: "int", nullable: false), Discriminator = table.Column<string>(type: "nvarchar(max)", nullable: false) }, constraints: table => { //... }); 当我的代码中没有使用IdentityUserRole<int>时,我会得到一个鉴别器列。 请注意,AspNetUsers和AspNetRoles表中都没有鉴别器列。 那么我该怎么做才能在没有鉴别器列的情况下获取导航属性? 可能有点晚了,但我也面临这个问题。为了解决这个问题,我们需要做一些事情(我将显示Guid,但你可以将它们全部更改为int): 使用带有所有重载的基类作为上下文: public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, Guid, IdentityUserClaim<Guid>, ApplicationUserRole, IdentityUserLogin<Guid>, IdentityRoleClaim<Guid>, IdentityUserToken<Guid>> 创建ApplicationUserRole类如下: public class ApplicationUserRole : IdentityUserRole<Guid> { public ApplicationUser User { get; set; } public ApplicationRole Role { get; set; } } 使用流畅的 API 配置它(我更喜欢创建单独的类进行配置): using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Builders; class ApplicationUserRoleConfiguration : IEntityTypeConfiguration<ApplicationUserRole> { public void Configure(EntityTypeBuilder<ApplicationUserRole> builder) { builder.HasOne(t => t.User) .WithMany() .HasForeignKey(t => t.UserId); builder.HasOne(t => t.Role) .WithMany() .HasForeignKey(t => t.RoleId); } } 要应用它们,只需覆盖您中的OnModelCreating即可使用ApplicationContext:ApplyConfigurationsFromAssembly 或者直接将配置放到这个方法中。 要向导航属性公开任何其他成员,请使用相同的技术 - 更改基本继承中的类,使用公开的导航属性从原始类继承,使用流畅的 api 为它们配置映射。 在这一点上,创建新的迁移不会以任何方式更改数据库。在 .NET 8 上测试。
我在asp.net core中有一个项目,其身份来自.NET 8。一切都很顺利,我为用户添加了角色(例如管理员、用户),只有当我通过“/login”处的出口点进行身份验证时...
AppUser : IdentityUser 可以链接到员工实体,同时在清洁架构中保持依赖倒置的关注点分离
我选择在基础设施层定义这样的ApplicationUser类: 命名空间 MySolution.Infrastruct.Context { // 通过添加属性来添加应用程序用户的个人资料数据...
我正在开发 ASP.NET Core Web 应用程序 (.NET 5.0)。 这是一个 Intranet 应用程序,因此我使用 Windows 身份验证。 对于授权,我使用 AspNetCore.Identity 中的自定义角色(不想...
无法设置具有 Google 登录 StatusCode 的 ASP.NET Core 8,因为响应已开始
我正在开发一个 ASP.NET Core 8 应用程序,使用 Identity 进行身份验证,包括 Google 登录。成功登录 Google 后,应用程序重定向到 /signin-google,但是...