当我在 asp.net mvc 5 中达到类用户身份时,如何获得新属性?
Posted
技术标签:
【中文标题】当我在 asp.net mvc 5 中达到类用户身份时,如何获得新属性?【英文标题】:How to get in it the new attributes, when I reached class User Identity in asp.net mvc 5? 【发布时间】:2015-12-04 09:08:18 【问题描述】:现在我知道如何通过 Identity 扩展 User 类,现在我需要知道如何在听证会上获取这些项目。在身份模型中
namespace ExtendIdentity.Models
// 您可以通过向 ApplicationUser 类添加更多属性来为用户添加配置文件数据,请访问http://go.microsoft.com/fwlink/?LinkID=317594 了解更多信息。 公共类 ApplicationUser : IdentityUser //Aqui se agregan las propiedades que uno quiere extender para la clase Usuario(paso 1) 公共字符串电子邮件获取;放;
public string Area get; set;
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
public ApplicationDbContext()
: base("DefaultConnection")
和`公共类RegisterViewModel [必需的] [显示(名称=“用户名”)] 公共字符串用户名 获取;放;
[Required]
[StringLength(100, ErrorMessage = "The 0 must be at least 2 characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password get; set;
[DataType(DataType.Password)]
[Display(Name = "Confirm password")]
[Compare("Password", ErrorMessage = "The password and confirmation password do not match.")]
public string ConfirmPassword get; set;
//Aqui se gragan las propiedades, en el Viewmodel para que la vista los genere(Paso 2)
[DataType(DataType.EmailAddress,ErrorMessage = "Por favor,entre un email valido")]
[Required]
public string Email get; set;
[Required]
public string Area get; set;
和AcountController
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
if (ModelState.IsValid)
//Se modifica la siguiente linea para que se guarde en la base de datos los elementos nuevos (paso 3)
// Si existe algun error se debe habilitar las migraciones y migrar
var user = new ApplicationUser() UserName = model.UserName , Email = model.Email, Area = model.Area ;
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
await SignInAsync(user, isPersistent: false);
return RedirectToAction("Index", "Home");
else
AddErrors(result);
// If we got this far, something failed, redisplay form
return View(model);
我需要在听证会上获得地区和电子邮件,打火机或水
【问题讨论】:
什么?...请把你的问题说清楚一点。 声明是您可能需要的kevin-junghans.blogspot.com/2013/12/… 【参考方案1】:您可以通过使用 Owin 上下文管理器在任何地方获取用户管理器对象。在用户管理器的帮助下,您可以通过 ID 获取用户对象:
//make sure you added this line in the using section
using Microsoft.AspNet.Identity.Owin
string myCustomProperty = HttpContext.Current.GetOwinContext()
.GetUserManager<ApplicationUserManager>()
.FindById(HttpContext.Current.User.Identity.GetUserId()).CustomPropertyName;
【讨论】:
以上是关于当我在 asp.net mvc 5 中达到类用户身份时,如何获得新属性?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ASP.NET Core 5 MVC (.NET 5) 中获取记录的用户数据?
Asp.net MVC 5 视图在使用 F5 重新加载页面之前不呈现
ASP.NET MVC 5 解决方案在 VS2013 中有效,但在 VS2015 中无效