【发布时间】:2019-07-12 03:52:09
【问题描述】:
我是 ASP.Net.Core.Identity.2 的新手。我以前推出了自己的安全性,但使用的是 Net.Core 2.2。我无法升级我的代码,因为大部分代码都不起作用,所以我决定进行切换。我要做的就是向User 添加新属性,这样我就可以执行以下操作:-
User.FirstName //or
User.Identity.FirstName
//or some other syntax
我已经阅读了大量文章并尝试了一些示例,但我一无所获,示例要么不起作用,要么给我设计时错误,要么给我运行时错误。
我已按以下类别进行了修改。并更新了数据库。我可以看到数据库中的新字段。但是接下来我该怎么办?走到这一步很容易,但现在我完全卡住了。
public partial class SystemUser : IdentityUser<int>
{
//public int Id { get; set; }
public string Title { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Mobile { get; set; }
public string JobTitle { get; set; }
public string Hint { get; set; }
public int AddressId { get; set; }
public bool IsActive { get; set; }
//
// Summary:
// Gets or sets the date and time, in UTC, when any user lockout ends.
//
// Remarks:
// A value in the past means the user is not locked out.
[Column(TypeName = "datetime")]
public override DateTimeOffset? LockoutEnd { get; set; }
}
我什至不能做这样的事情
SystemUser user = _context.SystemUser.Where(s => s.UserName == User.Identity.Name).FirstOrDefault();
因为这根本不会带回任何东西。我似乎处处受挫:(
我正在使用 VS2017、MySql、Pomelo.EntityFrameworkCore.MySql。任何帮助将不胜感激。提前致谢。
为了让这个工作我必须做的是
- 删除存储的身份 cookie
- 将数据从字符串更改为 int(1、2、3 等)
- 在数据库中将 ID 列从 string 更改为 int
它现在可以工作了,但我不知道还有什么其他隐藏的宝石在等着我
【问题讨论】:
-
是的。它没有工作:(
-
你遇到了什么问题?
-
我无法以任何方式获取 FirstName 属性,也无法获取 User.ID 属性以从数据库中获取它。我似乎看不到FirstName(或其他)属性
-
你可能正在寻找这个:stackoverflow.com/questions/54532743/…
标签: asp.net-core asp.net-identity