C# ASP.NET标识与自定义;“用户”;桌子
我想使用OWIN。但是我需要用户表中的更多列。我还想使用C# ASP.NET标识与自定义;“用户”;桌子,c#,asp.net,nhibernate,asp.net-mvc-5,owin,C#,Asp.net,Nhibernate,Asp.net Mvc 5,Owin,我想使用OWIN。但是我需要用户表中的更多列。我还想使用NHibernate 这样做的方法是什么? 从OWIN扩展用户表。我不知道这是否可能。其次,我不知道是否会出现缓存问题 或者,我为自己的用户数据创建了第二个用户表,其中“UserID”属性作为外键引用OWIN?的用户表。我想说,无论如何都要使用Asp.NET标识。如果您想为应用程序用户添加更多属性,可以按如下方式添加它们: public class ApplicationUser : IdentityUser { public as
NHibernate
这样做的方法是什么?
从OWIN
扩展用户表。我不知道这是否可能。其次,我不知道是否会出现缓存问题
或者,我为自己的用户数据创建了第二个用户表,其中“UserID”属性作为外键引用
OWIN
?的用户表。我想说,无论如何都要使用Asp.NET标识。如果您想为应用程序用户
添加更多属性,可以按如下方式添加它们:
public class ApplicationUser : IdentityUser
{
public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
{
// Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);
// Add custom user claims here
return userIdentity;
}
// Your Extended Properties
public string FirstName{ get; set; }
public string LastName{ get; set; }
//...
}
公共类应用程序用户:IdentityUser
{
公共异步任务GenerateUserIdentityAsync(UserManager.这正是Identity的设计目的:可扩展性。如果您想要在ApplicationUser
上添加额外属性,只需添加它们。它与任何其他实体一样。Owin与身份或身份验证一般无关。Identity只是碰巧作为Owin中间件运行。好的。如果我有表,谁没有呢参考用户表(反之亦然)哪个是独立于ApplicationUser的完整实体?我必须使用NHibernate来获取数据?@Xeddon您在identity和ApplicationUser下拥有的任何内容都由其自己的DbContext处理,如果您有其他与ApplicationUser无关的表,则由您自己的ORM处理,但是如果您想在这些表中拥有用户ID,则由您自己的ORM处理您可以很容易地将它们作为外键映射到NHibernate中的ApplicationUser表。但是使用我的ORM从ApplicationUser操作属性是很好的吗?也许我会遇到缓存问题?(我从ORM操作,而不是从标识操作,再次从ORM操作)@Xeddon Identity model有自己的ORM,它与实体框架分开安装,我建议使用自己的ORM来操作自己的表和数据。