问题标签 [asp.net-core-identity]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 在操作方法之后调用 ViewComponent
我有以下布局页面:
ViewComponent
它为经过身份验证和未经过身份验证的用户呈现两种不同的视图:
我还有一个注销用户的操作方法:
我想在调用action方法后渲染,ViewComponent
怎么LogOut
做?
c# - 我应该如何从 ASP.NET Core 视图访问我的 ApplicationUser 属性?
我正在开发一个 ASP.Net vNext / MVC6 项目。我开始掌握 ASP.Net 身份。
该类ApplicationUser
显然是我应该添加任何其他用户属性的地方,这适用于 Entity Framework,并且我的其他属性按预期存储在数据库中。
但是,当我想从我的视图中访问当前登录用户的详细信息时,问题就出现了。具体来说,我有一个_loginPartial.cshtml
我想在其中检索和显示用户的 Gravatar 图标,为此我需要电子邮件地址。
RazorView
基类有一个 User 属性,它是一个ClaimsPrincipal
. 如何从该User
属性返回到我的ApplicationUser
, 以检索我的自定义属性?
请注意,我不是在问如何找到信息;我知道如何ApplicationUser
从User.GetUserId()
值中查找。这更多是关于如何明智地处理这个问题的问题。具体来说,我不想:
- 从我的视图中执行任何类型的数据库查找(关注点分离)
- 必须为每个控制器添加逻辑以检索当前用户的详细信息(DRY 原则)
- 必须为每个 ViewModel 添加一个用户属性。
这似乎是一个“横切关注点”,应该有一个集中的标准解决方案,但我觉得我错过了一块拼图。从视图中获取这些自定义用户属性的最佳方法是什么?
注意:似乎 MVC 团队在项目模板中绕过了这个问题,确保 UserName 属性始终设置为用户的电子邮件地址,巧妙地避免了他们执行此查找以获取用户的电子邮件地址的需要!这对我来说似乎有点欺骗,在我的解决方案中,用户的登录名可能是也可能不是他们的电子邮件地址,所以我不能依赖这个技巧(我怀疑我以后需要访问其他属性)。
c# - 如何在 ASP.NET Core 中返回 401 而不是 302?
我试图让 ASP.NET Core Identity 在用户未登录时返回 401。我在[Authorize]
我的方法中添加了一个属性,而不是返回 401,而是返回 302。我尝试了很多建议,但是似乎没有任何效果,包括services.Configure
并app.UseCookieAuthentication
设置LoginPath
为null
or PathString.Empty
。
asp.net-core - 如何为 ASP.NET Core Identity 中的持久性和非持久性 cookie 配置不同的 ExpireTimeSpan
我有一个带有记住我选项的登录页面。我想将记住我的 cookie 有效期配置为更长,比如一个月。我可以使用该CookieAuthenticationOptions.ExpireTimeSpan
属性,但“仅”对 RememberMe 选项不起作用。我希望用户在当前浏览会话中登录几分钟,例如登录后 30 分钟(如果用户没有选择 RememberMe 选项)。在这种情况下,我会使用ExpireTimeSpan = TimeSpan.FromMinutes(30)
.
有没有办法我可以配置类似“RememberMeDuration”的东西来配置两个不同的设置时选择记住我和不选择时?- 开箱即用(至少不会为这样的小功能创建全新的中间件)
asp.net-core - ASP.Net Core 本地化
ASP.Net 核心具有对本地化的新支持。
在我的项目中,我只需要一种语言。对于大多数文本和注释,我可以用我的语言指定内容,但对于来自 ASP.Net Core 本身的文本,语言是英语。
例子:
- 密码必须至少有一个大写字母 ('A'-'Z')。
- 密码必须至少有一位数字 ('0'-'9')。
- 用户名“x@x.com”已被占用。
- E-post 字段不是有效的电子邮件地址。
- 值 '' 无效。
我试过手动设置文化,但语言仍然是英语。
如何更改 ASP.Net Core 的语言,或覆盖其默认文本?
c# - 添加新的身份角色
我正在尝试向 ASP.NET Core Identity 系统添加一个新角色。但到目前为止还没有运气。
代码:C#
错误信息:
错误 CS7036 没有给出与“RoleManager.RoleManager(IRoleStore, IEnumerable>, ILookupNormalizer, IdentityErrorDescriber, ILogger>, IHttpContextAccessor) 的所需形式参数“roleValidators”相对应的参数
.net 4.6 VB.net 中的相同代码有效
c# - 使用 ASP .NET Core Identity 和 EntityFrameworkCore 注册新用户时出现 InvalidOperationException
我正在关注使用 Identity 的文档并尝试注册新用户(执行注册操作),但它失败并出现以下错误:
InvalidOperationException:无法为“ApplicationUser”创建 DbSet,因为此类型未包含在上下文模型中。
启动:
我正在使用标准的 ApplicationUser:
在 AccountController 中注册操作:
我已经尝试了以下方法:
- 添加
DbSet<ApplicationUser>
到AplicationContext
- 我确实通过
dotnet ef
c# - 如何自定义实现 asp.net 身份的 UpdateAsync 方法?
我正在做自定义 asp.net 身份而不使用 asp.net 内置表。我已经成功创建了用户并实现了自定义CreateAsync
现在我想用新的加密密码更新用户,所以我不知道如何提供UpdateAsync method
.
这是我的桌子:
用户:Id,Name,EmailId,Password,Statistics,Salary
型号:
我实现 IUserstore 的自定义类:
控制器: