如何在没有角色的情况下使用 ASP.NET Core Identity?

2023-12-20

在asp.net core 2中实现身份而不实现角色是否可行?
我尝试执行以下操作:

services.AddIdentityCore<TUser>();

但这似乎不太有效。


我得到了它!

我已经在github上传了一个repo:https://github.com/tolemac/IdentityWithoutRoles https://github.com/tolemac/IdentityWithoutRoles

您必须创建您的自定义ApplicationDbContext有更正DbSets:

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions options) : base(options)
    {
    }

    /// <summary>
    /// Gets or sets the <see cref="DbSet{TEntity}"/> of Users.
    /// </summary>
    public DbSet<ApplicationUser> WebUsers { get; set; }

    /// <summary>
    /// Gets or sets the <see cref="DbSet{TEntity}"/> of User claims.
    /// </summary>
    public DbSet<IdentityUserClaim<long>> UserClaims { get; set; }

    /// <summary>
    /// Gets or sets the <see cref="DbSet{TEntity}"/> of User logins.
    /// </summary>
    public DbSet<IdentityUserLogin<long>> UserLogins { get; set; }

    /// <summary>
    /// Gets or sets the <see cref="DbSet{TEntity}"/> of User tokens.
    /// </summary>
    public DbSet<IdentityUserToken<long>> UserTokens { get; set; }

    /// <summary>
    /// Configures the schema needed for the identity framework.
    /// </summary>
    /// <param name="builder">
    /// The builder being used to construct the model for this context.
    /// </param>
    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

        // add your model builder code here.
    }
}

然后你必须这样配置服务:

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseInMemoryDatabase("WebApplicationTestingDatabase"));//.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

        services.AddIdentityCore<ApplicationUser>(options =>
            {
                // Identity options configuration
                options.Password.RequireDigit = true;
                options.Password.RequiredLength = 8;
                options.Password.RequireNonAlphanumeric = true;
                options.Password.RequireUppercase = true;
                options.Password.RequireLowercase = true;
            })
            .AddUserStore<UserStore<ApplicationUser, IdentityRole<long>, ApplicationDbContext, long>>()
            .AddDefaultTokenProviders()
            .AddSignInManager<SignInManager<ApplicationUser>>();

        services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = IdentityConstants.ApplicationScheme;
                options.DefaultChallengeScheme = IdentityConstants.ApplicationScheme;
                options.DefaultSignInScheme = IdentityConstants.ExternalScheme;
            }).AddCookie(IdentityConstants.ApplicationScheme, o =>
            {
                o.LoginPath = new PathString("/Account/Login");
                o.Events = new CookieAuthenticationEvents()
                {
                    OnValidatePrincipal = SecurityStampValidator.ValidatePrincipalAsync
                };
            }).AddCookie(IdentityConstants.ExternalScheme, o =>
            {
                o.Cookie.Name = IdentityConstants.ExternalScheme;
                o.ExpireTimeSpan = TimeSpan.FromMinutes(5.0);
            })
            .AddCookie(IdentityConstants.TwoFactorRememberMeScheme,
                o => o.Cookie.Name = IdentityConstants.TwoFactorRememberMeScheme)
            .AddCookie(IdentityConstants.TwoFactorUserIdScheme,
                o =>
                {
                    o.Cookie.Name = IdentityConstants.TwoFactorUserIdScheme;
                    o.ExpireTimeSpan = TimeSpan.FromMinutes(5.0);
                }
            );
        services.AddScoped<ISecurityStampValidator, SecurityStampValidator<ApplicationUser>>();

你必须使用AddIdentityCore, AddUserStore and AddAuthentication手动,必须配置ISecurityStampValidator too.

希望它会有用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在没有角色的情况下使用 ASP.NET Core Identity? 的相关文章

  • 将类对象放置在向量中?

    我注意到我可以将一个类放置在一个向量中 这是我的程序 我收到以下错误 out blackjack exe blackjack obj blackjack obj error LNK2019 unresolved external symbo
  • Environment.CurrentDirectory 与 System.IO.Directory.GetCurrentDirectory

    我正在编写一个 Net WinForms 并不断在调试和发布配置之间切换 并且有一些文件我需要任一配置才能访问 我想做的是将文件放在 BIN 文件夹中的公共目录中 这样它看起来像这样 MyProject Bin CommonFiles My
  • Http 标头已删除 Azure Web 应用程序

    我在 Azure 上托管的 Web 应用程序遇到问题 该应用程序是一个用于身份验证 授权的identityserver4应用程序 asp net core 此应用程序可以在本地运行 但不能在 Azure 上运行 通过跟踪来自服务器的响应标头
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • 按扩展名过滤搜索文件返回太多结果

    我正在开发一个 C 控制台应用程序 它必须管理 Windows 操作系统上的文件 我需要获取具有特定扩展名的文件名 列表 我找到了很多解决方案 最建议的是以下一种 HANDLE hFind WIN32 FIND DATA data hFin
  • 现代 C++ 编译器是否能够在某些情况下避免调用 const 函数两次?

    例如 如果我有以下代码 class SomeDataProcessor public bool calc const SomeData d1 const SomeData d2 const private Some non mutable
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • 如何使用 ASP.NET Core 获取其他用户的声明

    我仍在学习 ASP NET Core 的身份 我正在进行基于声明的令牌授权 大多数示例都是关于 当前 登录用户的 就我而言 我的 RPC 服务正在接收身份数据库中某个用户的用户名和密码 我需要 验证是否存在具有此类凭据的用户 获取该用户的所
  • 如何将AVFrame转换为glTexImage2D使用的纹理?

    如您所知 AVFrame 有 2 个属性 pFrame gt data pFrame gt linesize 当我从视频 sdcard test mp4 android平台 读取帧后 并将其转换为RGB AVFrame副 img conve
  • 从网页运行 ClickOnce 应用程序,无需用户操作

    我们有一个基于 Java 的 Web 应用程序以及用 C 编写的相同应用程序 如果 java 检查器发现客户端计算机上没有安装 Java 则应该运行该应用程序 这个想法是运行 C 单击一次 http en wikipedia org wik
  • 如何递归取消引用指针(C++03)?

    我正在尝试在 C 中递归地取消引用指针 如果传递一个对象 那就是not一个指针 这包括智能指针 我只想返回对象本身 如果可能的话通过引用返回 我有这个代码 template
  • memcpy/memmove 到联合成员,这是否设置“活动”成员?

    重要说明 一些评论者似乎认为我是从工会抄袭的 仔细看memcpy 它从普通旧地址复制uint32 t 它不包含在联合中 另外 我正在复制 通过memcpy 到工会的特定成员 u a16 or u x in a union 不直接到整个联盟本
  • 比较:接口方法、虚方法、抽象方法

    它们各自的优点和缺点是什么 接口方法 虚拟方法 抽象方法 什么时候应该选择什么 做出这一决定时应牢记哪些要点 虚拟和抽象几乎是一样的 虚方法在基类中有一个实现 可以选择重写 而抽象方法则没有 并且must在子类中被覆盖 否则它们是相同的 在
  • C++ 对象用 new 创建,用 free() 销毁;这有多糟糕?

    我正在修改一个相对较大的 C 程序 不幸的是 并不总是清楚我之前的人使用的是 C 还是 C 语法 这是在一所大学的电气工程系 我们 EE 总是想用 C 来做所有事情 不幸的是 在这种情况下 人们实际上可以逃脱惩罚 但是 如果有人创建一个对象
  • 代码中的.net Access Forms身份验证“超时”值

    我正在向我的应用程序添加注销过期警报 并希望从我的代码访问我的 web config 表单身份验证 超时 值 我有什么办法可以做到这一点吗 我认为您可以从 FormsAuthentication 静态类方法中读取它 这比直接读取 web c
  • C++:二叉树所有节点值的总和

    我正在准备面试 我被一个二叉树问题困住了 我们如何计算二叉树所有节点中存在的值的总和 优雅的递归解决方案 伪代码 def sum node if node NULL return 0 return node gt value sum nod
  • 在 Win32 控制台应用程序中设置光标位置

    如何在 Win32 控制台应用程序中设置光标位置 最好 我想避免制作句柄并使用 Windows 控制台功能 我花了整个早上沿着那条黑暗的小巷跑 它产生的问题比它解决的问题还要多 我似乎记得当我在大学时使用 stdio 做这件事相对简单 但我
  • 当用户更改 Windows 中的语言键盘布局时如何通知?

    I want to show a message to user when the user changes the language keyboard layout of Windows for example from EN to FR

随机推荐

  • 禁用 UICollectionView 中 UIAttachmnetBehavior 的垂直移动

    我尝试在水平 UICollectionView 中模仿消息应用程序弹簧动画 我在 UICollectionViewFlowLayout 子类中使用了 UIAttachmentBehavior 但问题是 当我水平滚动时 单元格也会垂直和水平移
  • 视图之间快速导航的设计建议

    通常 当视图需要大量绑定或某些 UI 元素 例如 Bing 地图 时 需要 一段时间 来加载 例如半秒到一秒 我不希望 点击 操作 例如点击列表框中的元素 和导航操作 显示新页面 之间出现延迟 我不介意逐步显示页面 例如 对于 Bing 地
  • 查找满足条件的向量内的索引

    我正在寻找一个条件 它将返回满足条件的向量的索引 例如 我有一个向量b c 0 1 0 2 0 7 0 9 我想知道 b gt 0 65 的第一个索引 在这种情况下 答案应该是 3 I tried which min subset b b
  • 刷新后保留通过 jquery 动态生成的输入字段

    我正在使用下面的脚本根据需要生成输入字段 但是 刷新或单击返回提交错误页面时 输入的字段和信息会消失 有什么办法可以在点击返回或刷新页面后保留字段吗 document ready function var MaxInputs 67 var
  • 在 TextInput 中实现 @mention

    如何在React Native的TextInput中实现 mention 我试过这个反应本机提及 https github com harshq react native mentions但它不再被维护了 有很多样式问题和回调问题 我想要的
  • 如何从 npm 模块导入 css 文件 - webcomponent

    我正在尝试在我的应用程序中使用 MDC 组件作为材料设计组件 我在 Polymer LitElement 中有一个自定义元素 render props return html SharedStyles
  • 矢量的小字符串优化?

    我知道几个 全部 STL 实现实现了 小字符串 优化 其中字符串不是存储通常的 3 个指针 用于开始 结束和容量 而是将实际字符数据存储在用于指针的内存中 如果 sizeof characters 我正在考虑通过简单地将向量转换为字符串来实
  • JavaScript 中的 isPrototypeOf

    我是初学者JavaScript在我去的路上JavaScript 中的原型 根据文章here http www w3schools com js js object prototypes asp 创建原型创建对象原型的标准方法是使用对象构造函
  • 实例是否应该使用 setter/getter 来访问自己的私有数据成员?

    从每一门入门编程课程开始 我们都会被教导如何使用访问器和设置器 而不是暴露类的内部工作原理 学生稍后再学习练习的要点 但现在我明白这种做法 A 阻止实现成为合同导出 API 的一部分 B 改进封装和数据隐藏 C 允许保证每当设置或访问变量时
  • Django Queryset 注释字段的绝对值

    如何获取注释字段的绝对值 我尝试了下面的代码 但没有成功 queryset annotate relevance abs F capacity int request GET capacity order by relevance Erro
  • 有没有办法自定义 gitblame 的输出?

    git log有一个不错的 format选项来指定输出的格式 But git blame尽管默认输出为blame不太人性化 我希望看到的少一些 例如 代替 5600cab7 js sidebar VehicleGrid js Rene Sa
  • 更改magento中的愿望清单网址[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有一个特别的要求 是否可以将整个愿
  • 在 Clojure 中实现 Java 泛型接口

    我正在尝试使用 selenium2 webdriver 项目来掌握 clojure 的窍门网络驱动程序 clj http github com mikitebeka webdriver cljwebdriver 的包装器 然而 由于网络界面
  • Android 中的上下文是如何创建的? ContextThemeWrapper 的目的是什么?

    我正在帮助整理此页面 什么是上下文 https github com codepath android guides wiki Using Context 为了帮助说明组件如何与Context 我通过查看框架源代码创建了这个图 经过一番研究
  • 使用标签或 的灯箱

    是否有任何灯箱实现允许使用 a href a fancybox net 只需很少的工作即可实现这一目标 a href data image each function this fancybox content img attr src t
  • TypingError:在 nopython 模式管道中失败(步骤:nopython 前端)

    我正在尝试使用 numba jit 编写我的第一个函数 我有一个 pandas 数据帧 我需要迭代它并找到每个 350 个点的均方根 因为 python 的 for 循环非常慢 我决定尝试 numba jit 代码是 jit nopytho
  • 在 Python 中使用生成器进行广度优先树遍历

    我正在 David Beazly 的优秀 Python Cookbook 文本中研究如何在 Python 中使用生成器 以下代码配方非常优雅地使用生成器定义了深度优先树遍历 example py Example of depth first
  • 从地图 API 获取建筑物的高度

    是否有任何公共地图 API 谷歌 微软 openstreet 可以返回某些点的屋顶高度 想象一下 您请求一些地址 API 返回坐标 一些信息和建筑物的高度 如果有 OpenStreetMap 有一个身高标签 http wiki openst
  • 如何向块添加额外的参数

    有一个很酷的method https github com MailCore MailCore blob master Source CTBareAttachment h下载附件并接受块作为参数以返回下载进度 CTCoreAttachmen
  • 如何在没有角色的情况下使用 ASP.NET Core Identity?

    在asp net core 2中实现身份而不实现角色是否可行 我尝试执行以下操作 services AddIdentityCore