Obtener el Id es bastante sencillo y lo has resuelto.
Sin embargo, su segunda pregunta es un poco más complicada.
Por lo tanto, todo esto es una versión preliminar en este momento, pero el problema común que enfrenta es dónde está extendiendo al usuario con nuevas propiedades (o una colección de Artículos en su pregunta).
Fuera de la caja obtendrá un archivo llamado IdentityModel
en la carpeta Modelos (en el momento de la escritura). Ahí tienes un par de clases; ApplicationUser
y ApplicationDbContext
. Para agregar su colección de Items
querrá modificar elApplicationUser
clase, tal como lo haría si fuera una clase normal que estaba usando con Entity Framework. De hecho, si echa un vistazo rápido debajo del capó, encontrará que todas las clases relacionadas con la identidad (Usuario, Rol, etc.) son solo POCO ahora con las anotaciones de datos apropiadas para que funcionen bien con EF6.
A continuación, deberá realizar algunos cambios en el AccountController
constructor para que sepa usar su DbContext.
public AccountController()
{
IdentityManager = new AuthenticationIdentityManager(
new IdentityStore(new ApplicationDbContext()));
}
Ahora, para ser honesto, obtener un objeto de usuario completo para su usuario conectado es un poco esotérico.
var userWithItems = (ApplicationUser)await IdentityManager.Store.Users
.FindAsync(User.Identity.GetUserId(), CancellationToken.None);
Esa línea hará el trabajo y podrás acceder userWithItems.Items
como quieras.
HTH
HttpContext.Current.User.Identity.Name
es el nombre del usuario actualmente registrado.Item
que crea, pero no en función del nombre de usuario (eso podría cambiar). No funciona por la forma en que 'HttpContext.Current' System.Web.HttpContextBase 'no contiene una definición para' Current 'y no se puede encontrar ningún método de extensión' Current 'que acepte un primer argumento de tipo' System.Web.HttpContextBase '( ¿Le falta una directiva de uso o una referencia de ensamblado?) `. ¿Estás seguro de que tu solución es para MVC 5?