{"id":1174,"date":"2013-10-16T05:30:00","date_gmt":"2013-10-16T05:30:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/2013\/10\/16\/customizing-profile-information-in-asp-net-identity-in-vs-2013-templates\/"},"modified":"2022-08-09T03:35:07","modified_gmt":"2022-08-09T10:35:07","slug":"customizing-profile-information-in-asp-net-identity-in-vs-2013-templates","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/customizing-profile-information-in-asp-net-identity-in-vs-2013-templates\/","title":{"rendered":"Customizing profile information in ASP.NET Identity in VS 2013 templates"},"content":{"rendered":"<p><span style=\"font-size: small\">ASP.NET Identity is the new membership system for ASP.NET applications. To learn more about ASP.NET Identity please visit <\/span><a href=\"http:\/\/blogs.msdn.com\/b\/webdev\/archive\/2013\/06\/27\/introducing-asp-net-identity-membership-system-for-asp-net-applications.aspx\"><span style=\"font-size: small\">http:\/\/blogs.msdn.com\/b\/webdev\/archive\/2013\/06\/27\/introducing-asp-net-identity-membership-system-for-asp-net-applications.aspx<\/span><\/a><\/p>\n<p><span style=\"font-size: small\">One of the mainline features about ASP.NET Identity is to make it easy to add profile information about the user. In the existing ASP.NET Membership system, User and Profile were separate tables and Profile information about the user was retrieved by using the Profile provider. This made it difficult to customize the Profile information and associate it with the User and application data.&#160; ASP.NET Identity makes it really easy to add profile data for your User.<\/span><\/p>\n<p><span style=\"font-size: small\"><span>[Update]<\/span> Adding information on how to store profile information in a different table<\/span><\/p>\n<p><span style=\"font-size: small\"><span>[Update]<\/span> Rick Anderson has a tutorial on asp.net site which also shows how you can add Social Logins to the template as well. Please refer to the tutorial for an entire walkthrough<\/span><\/p>\n<p><span style=\"font-size: small\"><a href=\"http:\/\/www.asp.net\/mvc\/tutorials\/mvc-5\/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on\">http:\/\/www.asp.net\/mvc\/tutorials\/mvc-5\/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on<\/a><\/span><\/p>\n<p><span style=\"font-size: small\">     <br \/>This post shows how you can customize profile information about the user when you start with the project templates in Visual Studio 2013. Following are the steps to follow to add profile information about the user.<\/span><\/p>\n<ul>\n<ul>\n<li><span style=\"font-size: small\">In Visual Studio 2013, <strong>create a new ASP.NET MVC application<\/strong>.<\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">You can create a Web Forms application and follow the same steps to add profile information.<\/span><\/li>\n<\/ul>\n<li><span style=\"font-size: small\"><strong>Run the application and register a user<\/strong><\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">You would notice that at the registration screen, the application only asks for a UserName and password. Let\u2019s say that you wanted to add one more field called BirthDate that the users should specify when registering a user.<\/span><\/li>\n<\/ul>\n<li><span style=\"font-size: small\"><strong>Enable Entity Framework Migrations<\/strong><\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">Migrations are recommended to use when you are modifying the schema of the database or you are changing the Code First Model. ASP.NET Identity uses Entity Framework Code First as an underlying framework. For more information on EF migrations please visit <\/span><a href=\"http:\/\/msdn.microsoft.com\/en-us\/data\/jj591621\"><span style=\"font-size: small\">http:\/\/msdn.microsoft.com\/en-us\/data\/jj591621<\/span><\/a><\/li>\n<li><span style=\"font-size: small\">Open Package Manager Console by doing Tools \u2013 Library Package Manager \u2013 Package Manager Console<\/span><\/li>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/10\/0624.image_thumb_6736B4A1.png\"><span style=\"font-size: small\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/10\/0624.image_thumb_6736B4A1.png\" width=\"646\" height=\"378\" \/><\/span><\/a><\/li>\n<li><span style=\"font-size: small\">Type in \u201cEnable-Migrations\u201d and press enter<\/span><\/li>\n<\/ul>\n<li><span style=\"font-size: small\"><strong>Add properties for the Profile information that you want to store<\/strong>.<\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">In our example we will add BirthDate as a property<\/span><\/li>\n<li><span style=\"font-size: small\">Goto ModelsIdentityModels.cs and add the following property to ApplicationUser<\/span><\/li>\n<\/ul>\n<\/ul>\n<\/ul>\n<div class=\"csharpcode\"><span style=\"font-size: small\"><span class=\"kwrd\">public<\/span> <span class=\"kwrd\">class<\/span> ApplicationUser : IdentityUser<\/span><span style=\"font-size: small\"> {<\/span><span style=\"font-size: small\"> <span class=\"kwrd\">public<\/span> DateTime BirthDate { get; set; }<\/span><span style=\"font-size: small\"> }<\/span><\/div>\n<ul>\n<ul>\n<ul>\n<li><span style=\"font-size: small\">Add using System; at the top of the class.<\/span><\/li>\n<\/ul>\n<li><span style=\"font-size: small\"><strong>Add-Migrations to modify the database<\/strong><\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">Since we have added a new property to the User, we need to update the database to reflect this change. This is where EF migrations is really useful. You can use migrations to update the database schema by doing the following<\/span><\/li>\n<li><span style=\"font-size: small\">Goto Package Manager console and do the following<\/span><\/li>\n<li><span style=\"font-size: small\">Add-Migration &quot;Birthdate&quot;<\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">This will add a migration file to your project<\/span><\/li>\n<\/ul>\n<li><span style=\"font-size: small\">Update-Database<\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">This command will run all the migration files and update the database schema to add a BirthDate column<\/span><\/li>\n<\/ul>\n<\/ul>\n<li><span style=\"font-size: small\"><strong>Modify the application to add a BirthDate field<\/strong><\/span><\/li>\n<ul>\n<li><span style=\"font-size: small\">The steps here are specific to how you would add a view to MVC, but you can do similar view specific rendering in Web Forms as well<\/span><\/li>\n<li><span style=\"font-size: small\">Add BirthDate to RegisterViewModel in ModelsAccountViewModels.cs<\/span><\/li>\n<\/ul>\n<\/ul>\n<\/ul>\n<div class=\"csharpcode\">\n<pre class=\"alt\"><span class=\"lnum\">   1:  <\/span><span class=\"kwrd\">public<\/span> <span class=\"kwrd\">class<\/span> RegisterViewModel { <\/pre>\n<pre><span class=\"lnum\">   2:  <\/span>[Required] [Display(Name = <span class=\"str\">&quot;User name&quot;<\/span>)] <\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   3:  <\/span><span class=\"kwrd\">public<\/span> <span class=\"kwrd\">string<\/span> UserName { get; set; }  <\/pre>\n<pre><span class=\"lnum\">   4:  <\/span>&#160;<\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   5:  <\/span>[Required] <\/pre>\n<pre><span class=\"lnum\">   6:  <\/span>[StringLength(100, ErrorMessage = <span class=\"str\">&quot;The {0} must be <\/span><\/pre>\n<pre><span class=\"str\">       at least {2} characters long.&quot;<\/span>, MinimumLength = 6)] <\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   7:  <\/span>[DataType(DataType.Password)] [Display(Name = <span class=\"str\">&quot;Password&quot;<\/span>)] <\/pre>\n<pre><span class=\"lnum\">   8:  <\/span><span class=\"kwrd\">public<\/span> <span class=\"kwrd\">string<\/span> Password { get; set; }  [DataType(DataType.Password)]<\/pre>\n<pre>        [Display(Name = <span class=\"str\">&quot;Confirm password&quot;<\/span>)] <\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   9:  <\/span>&#160;<\/pre>\n<pre><span class=\"lnum\">  10:  <\/span>[Compare(<span class=\"str\">&quot;Password&quot;<\/span>, ErrorMessage = <\/pre>\n<pre>       <span class=\"str\">&quot;The password and confirmation password do not match.&quot;<\/span>)] <\/pre>\n<pre class=\"alt\"><p><span class=\"lnum\">  11:  <\/span><span class=\"kwrd\">public<\/span> <span class=\"kwrd\">string<\/span> ConfirmPassword { get; set; }  <\/p><p>        <span class=\"kwrd\">public<\/span> DateTime BirthDate { get; set; } }<\/p><\/pre>\n<\/div>\n<ul>\n<ul>\n<ul>\n<ul>\n<li><span style=\"font-size: small\">Add using System; at the top of the class.<\/span><\/li>\n<\/ul>\n<li><span style=\"font-size: small\">Update the Register view in ViewsAccount to add a field to enter BirthDate.<\/span><\/li>\n<\/ul>\n<\/ul>\n<\/ul>\n<div class=\"csharpcode\">\n<div class=\"csharpcode\">\n<pre class=\"alt\"><span class=\"lnum\">   1:  <\/span><span class=\"kwrd\">&lt;<\/span><span class=\"html\">div<\/span> <span class=\"attr\">class<\/span><span class=\"kwrd\">=&quot;form-group&quot;<\/span><span class=\"kwrd\">&gt;<\/span><\/pre>\n<pre><span class=\"lnum\">   2:  <\/span> @Html.LabelFor(m =<span class=\"kwrd\">&gt;<\/span> m.BirthDate, new { @class = &quot;col-md-2 control-label&quot; }) <\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   3:  <\/span><span class=\"kwrd\">&lt;<\/span><span class=\"html\">div<\/span> <span class=\"attr\">class<\/span><span class=\"kwrd\">=&quot;col-md-10&quot;<\/span><span class=\"kwrd\">&gt;<\/span> @Html.TextBoxFor(m =<span class=\"kwrd\">&gt;<\/span> m.BirthDate, new { @class = &quot;form-control&quot; }) <\/pre>\n<pre><span class=\"lnum\">   4:  <\/span><span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">div<\/span><span class=\"kwrd\">&gt;<\/span><\/pre>\n<pre class=\"alt\"><span class=\"lnum\">   5:  <\/span> <span class=\"kwrd\">&lt;\/<\/span><span class=\"html\">div<\/span><span class=\"kwrd\">&gt;<\/span><\/pre>\n<\/p><\/div>\n<\/p><\/div>\n<ul>\n<ul>\n<ul>\n<li><span style=\"font-size: small\"><strong>Update the Register Action in AccountController to store the BirthDate as well for the User<\/strong><\/span><\/li>\n<\/ul>\n<\/ul>\n<\/ul>\n<pre class=\"csharpcode\">var user = <span class=\"kwrd\">new<\/span> ApplicationUser() { UserName = model.UserName, BirthDate=model.BirthDate };<\/pre>\n<ul>\n<li><span style=\"font-size: small\"><strong>Run the application and register a user again. You will see the BirthDate field as shown below<\/strong><\/span><\/li>\n<\/ul>\n<p>&#160;<\/p>\n<ul>\n<ul>\n<li><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/10\/6837.image_thumb_64FCBC96.png\"><span style=\"font-size: small\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/10\/6837.image_thumb_64FCBC96.png\" width=\"501\" height=\"387\" \/><\/span><\/a><\/li>\n<\/ul>\n<\/ul>\n<div>\n<ul>\n<li><strong>Display the profile infromation on the page<\/strong><\/li>\n<ul>\n<li>When the User Logs in, you can display the profile information by doing the following<\/li>\n<li>Get the current logged in UserId, so you can look the user up in ASP.NET Identity system<\/li>\n<ul>\n<li>var currentUserId = User.Identity.GetUserId();<\/li>\n<\/ul>\n<li>Instantiate the UserManager in ASP.Identity system so you can look up the user in the system<\/li>\n<ul>\n<li>var manager = new UserManager&lt;MyUser&gt;(new UserStore&lt;MyUser&gt;(new MyDbContext()));<\/li>\n<\/ul>\n<li>Get the User object<\/li>\n<ul>\n<li>var currentUser = manager.FindById(User.Identity.GetUserId());<\/li>\n<\/ul>\n<li>Get the profile information about the user<\/li>\n<ul>\n<li>currentUser.BirthDate<\/li>\n<\/ul>\n<\/ul>\n<\/ul>\n<\/div>\n<h2><span style=\"font-size: small\"><font size=\"4\">Adding Profile information in a different table.<\/font><\/span><\/h2>\n<p><span style=\"font-size: small\">While this post shows you a way where you can easily add profile properties to the User Table itself. Since ASP.NET Identity uses Entity Framework, you can customize profile information as you would like to. For eg. let\u2019s say that you want to add profile information in a different table rather than the same table then you can do the following to your model<\/span><\/p>\n<p><span style=\"font-size: small\"><strong>Add a new class to store Profile information<\/strong><\/span><\/p>\n<div id=\"scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3c2c3cd2-639b-4f36-8af5-cef78cf05c48\" class=\"wlWriterEditableSmartContent\" style=\"margin: 0px;padding: 0px;float: none\">\n<div style=\"border: #000080 1px solid;color: #000;font-family: 'Courier New', Courier, Monospace;font-size: 10pt\">\n<div style=\"background: #000080;color: #fff;font-family: Verdana, Tahoma, Arial, sans-serif;font-weight: bold;padding: 2px 5px\">Code Snippet<\/div>\n<div style=\"background: #ddd;max-height: 300px;overflow: auto\">\n<ol start=\"1\" style=\"background: #ffffff;margin: 0 0 0 2.5em;padding: 0 0 0 5px\">\n<li><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">class<\/span><span style=\"background:#ffffff;color:#000000\"> MyUser : IdentityUser<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">{<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">virtual<\/span><span style=\"background:#ffffff;color:#000000\"> MyUserInfo MyUserInfo { get; set; }<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<li>&nbsp;<\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">class<\/span><span style=\"background:#ffffff;color:#000000\"> MyUserInfo{<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">int<\/span><span style=\"background:#ffffff;color:#000000\"> Id { get; set; }<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">string<\/span><span style=\"background:#ffffff;color:#000000\"> FirstName { get; set; }<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">string<\/span><span style=\"background:#ffffff;color:#000000\"> LastName { get; set; }<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> <\/span><span style=\"background:#ffffff;color:#0000ff\">class<\/span><span style=\"background:#ffffff;color:#000000\"> MyDbContext : IdentityDbContext&lt;MyUser&gt;<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">{<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> MyDbContext()<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">: <\/span><span style=\"background:#ffffff;color:#0000ff\">base<\/span><span style=\"background:#ffffff;color:#000000\">(<\/span><span style=\"background:#ffffff;color:#a31515\">&quot;DefaultConnection&quot;<\/span><span style=\"background:#ffffff;color:#000000\">)<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">{<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<li>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\"><\/span><span style=\"background:#ffffff;color:#0000ff\">public<\/span><span style=\"background:#ffffff;color:#000000\"> System.Data.Entity.DbSet&lt;MyUserInfo&gt; MyUserInfo { get; set; }<\/span><\/li>\n<li style=\"background: #f3f3f3\">\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"background:#ffffff;color:#000000\">}<\/span><\/li>\n<\/ol>\n<\/div>\n<\/div>\n<\/div>\n<p><span style=\"font-size: small\"><\/span><\/p>\n<p><span style=\"font-size: small\">In <\/span><font size=\"2\">this case when you run the application you will get the FirstName and LastName in a different table called MyUserInfo<\/font><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/10\/7485.image_thumb_30C45B3B.png\"><img decoding=\"async\" title=\"image\" border=\"0\" alt=\"image\" src=\"https:\/\/devblogs.microsoft.com\/dotnet\/wp-content\/uploads\/sites\/10\/2013\/10\/7485.image_thumb_30C45B3B.png\" width=\"158\" height=\"244\" \/><\/a> <\/p>\n<p><strong><font size=\"2\">Getting Profile information <\/font><\/strong><\/p>\n<ul>\n<li>When the User Logs in, you can display the profile information by doing the following<\/li>\n<li>Get the current logged in UserId, so you can look the user up in ASP.NET Identity system<\/li>\n<ul>\n<li>var currentUserId = User.Identity.GetUserId();<\/li>\n<\/ul>\n<li>Instantiate the UserManager in ASP.Identity system so you can look up the user in the system<\/li>\n<ul>\n<li>var manager = new UserManager&lt;MyUser&gt;(new UserStore&lt;MyUser&gt;(new MyDbContext()));<\/li>\n<\/ul>\n<li>Get the User object<\/li>\n<ul>\n<li>var currentUser = manager.FindById(User.Identity.GetUserId());<\/li>\n<\/ul>\n<li>Get the profile information about the user<\/li>\n<ul>\n<li>currentUser.MyUserInfo.FirstName<\/li>\n<\/ul>\n<\/ul>\n<h2><span style=\"font-size: small\">Conclusion<\/span><\/h2>\n<p><span style=\"font-size: small\">This post shows how you can customize the profile information about the user. If you have any questions, please leave comments or reach me at twitter (@rustd)<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>ASP.NET Identity is the new membership system for ASP.NET applications. To learn more about ASP.NET Identity please visit http:\/\/blogs.msdn.com\/b\/webdev\/archive\/2013\/06\/27\/introducing-asp-net-identity-membership-system-for-asp-net-applications.aspx One of the mainline features about ASP.NET Identity is to make it easy to add profile information about the user. In the existing ASP.NET Membership system, User and Profile were separate tables and Profile information about [&hellip;]<\/p>\n","protected":false},"author":408,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[],"class_list":["post-1174","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet"],"acf":[],"blog_post_summary":"<p>ASP.NET Identity is the new membership system for ASP.NET applications. To learn more about ASP.NET Identity please visit http:\/\/blogs.msdn.com\/b\/webdev\/archive\/2013\/06\/27\/introducing-asp-net-identity-membership-system-for-asp-net-applications.aspx One of the mainline features about ASP.NET Identity is to make it easy to add profile information about the user. In the existing ASP.NET Membership system, User and Profile were separate tables and Profile information about [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/1174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/408"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=1174"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/1174\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=1174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=1174"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=1174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}