Asp.net Identity 修改默认数据库,增加自定义字段

visual studio 2013

先新建一个项目

选择MVC,确定

打开 Views\Shared\_Layout.cshtml文件,按自己的要求修改

[html] view plain copy print?

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5. <meta charset="utf-8" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>@ViewBag.Title - <span style="color: rgb(255, 0, 0);">我的 ASP.NET 应用程序</span></title>
  8. @Styles.Render("~/Content/css")
  9. @Scripts.Render("~/bundles/modernizr")
  10. </head>
  11. <body>
  12. <div class="navbar navbar-inverse navbar-fixed-top">
  13. <div class="container">
  14. <div class="navbar-header">
  15. <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
  16. <span class="icon-bar"></span>
  17. <span class="icon-bar"></span>
  18. <span class="icon-bar"></span>
  19. </button>
  20. @Html.ActionLink("<span style="color: rgb(255, 0, 0);">应用程序名称</span>", "Index", "Home", null, new { @class = "navbar-brand" })
  21. </div>
  22. <div class="navbar-collapse collapse">
  23. <ul class="nav navbar-nav">
  24. <li>@Html.ActionLink("<span style="color: rgb(255, 102, 102);">主页</span>", "Index", "Home")</li>
  25. <li>@Html.ActionLink("<span style="color: rgb(255, 0, 0);">关于</span>", "About", "Home")</li>
  26. <li>@Html.ActionLink("<span style="color: rgb(255, 0, 0);">联系方式</span>", "Contact", "Home")</li>
  27. </ul>
  28. @Html.Partial("_LoginPartial")
  29. </div>
  30. </div>
  31. </div>
  32. <div class="container body-content">
  33. @RenderBody()
  34. <hr />
  35. <footer>
  36. <p>? @DateTime.Now.Year - <span style="color: rgb(255, 0, 0);">我的 ASP.NET 应用程序</span></p>
  37. </footer>
  38. </div>
  39. @Scripts.Render("~/bundles/jquery")
  40. @Scripts.Render("~/bundles/bootstrap")
  41. @RenderSection("scripts", required: false)
  42. </body>
  43. </html>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>@ViewBag.Title - 我的 ASP.NET 应用程序</title>
    @Styles.Render("~/Content/css")
    @Scripts.Render("~/bundles/modernizr")

</head>
<body>
    <div class="navbar navbar-inverse navbar-fixed-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                @Html.ActionLink("应用程序名称", "Index", "Home", null, new { @class = "navbar-brand" })
            </div>
            <div class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li>@Html.ActionLink("主页", "Index", "Home")</li>
                    <li>@Html.ActionLink("关于", "About", "Home")</li>
                    <li>@Html.ActionLink("联系方式", "Contact", "Home")</li>
                </ul>
                @Html.Partial("_LoginPartial")
            </div>
        </div>
    </div>
    <div class="container body-content">
        @RenderBody()
        <hr />
        <footer>
            <p>? @DateTime.Now.Year - 我的 ASP.NET 应用程序</p>
        </footer>
    </div>

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
</body>
</html>

Views\Home\Index.cshtml文件里替换相关内容。

打开web.config文件,修改默认数据库连接字符串

<add name="DefaultConnection"  connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\aspnet-PingShuo-20131123102758.mdf;Initial Catalog=aspnet-PingShuo-20131123102758;Integrated Security=True"     providerName="System.Data.SqlClient" />

</connectionStrings>

保存web.config,运行程序,点击注册,注册一个新用户,以激活数据库。

现在打开本机的MSSMS或VS的服务器资源管理器,可以看到已经建好的数据库PS,显示数据,可以看到已经注册的用户。

以建好的模板只有用户名和密码,实际使用中我们可能还需要其他信息,比如我将添加电话、所在部门等。

首先打开程序包管理控制台:

在控制台中输入“Enable-Migrations“,完成了迁移

打开Models\IdentityModels.cs文件,增加以下代码

using Microsoft.AspNet.Identity.EntityFramework;

//添加引用
using System;

namespace PingShuo.Models
{
    // You can add profile data for the user by adding more properties to your ApplicationUser class, please visit http://go.microsoft.com/fwlink/?LinkID=317594 to learn more.
    public class ApplicationUser : IdentityUser
    {
        //添加自定义的用户信息字段
        public string 电话 { get; set; }
        public string 部门 { get; set; }
    }

    public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public ApplicationDbContext()
            : base("DefaultConnection")
        {
        }
    }
}

在控制台中输入Add-Migration "电话"

接着输入:Update-Database

接着输入:Add-Migration "部门"和Update-Database

现在检查数据库,已经多了这两个字段

打开AccountViewModels.cs文件,增加红色部分:

 

using System.ComponentModel.DataAnnotations;

namespace PingShuo.Models
{
    public class ExternalLoginConfirmationViewModel
    {
        [Required]
        [Display(Name = "用户名")]
        public string UserName { get; set; }
    }

    public class ManageUserViewModel
    {
        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "当前密码")]
        public string OldPassword { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "新密码")]
        public string NewPassword { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "确认新密码")]
        [Compare("NewPassword", ErrorMessage = "新密码和确认密码不匹配。")]
        public string ConfirmPassword { get; set; }
    }

    public class LoginViewModel
    {
        [Required]
        [Display(Name = "用户名")]
        public string UserName { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "密码")]
        public string Password { get; set; }

        [Display(Name = "记住我?")]
        public bool RememberMe { get; set; }
    }

    public class RegisterViewModel
    {
        [Required]
        [Display(Name = "用户名")]
        public string UserName { get; set; }

        [Required]
        [StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)]
        [DataType(DataType.Password)]
        [Display(Name = "密码")]
        public string Password { get; set; }

        [DataType(DataType.Password)]
        [Display(Name = "确认密码")]
        [Compare("Password", ErrorMessage = "密码和确认密码不匹配。")]
        public string ConfirmPassword { get; set; }

        //扩展类的字段

        [Required]
        [Display(Name = "电话")]
        public string 电话 { get; set; }

        [Required]
        [Display(Name = "部门")]
        public string 部门 { get; set; }

        //顺便编写一个AppliationUser类的实例,以便后用:

        public ApplicationUser GetUser()
        {

            var user = new ApplicationUser()

            {

                UserName = this.UserName,

                部门 = this.部门,

            };

            return user;

        }

    }
}

忘了在顶部增加using System;

保存,运行,效果如下:

时间: 2024-10-27 12:42:53

Asp.net Identity 修改默认数据库,增加自定义字段的相关文章

SD--如何在输出控制中增加自定义字段

在sap的输出控制中,我们有时需要增加系统未定义的字段作为条件表的字段,为了实现该需求我们就需要修改增强. 输出控制用到的通讯结构 KOMKBK1 (Output Determination Communication Area CAS Appl. K1) KOMKBV1 (Output Determination Communication Area Header Appl. V1) KOMKBV2 (Output Determination Communication Area Header

自定义ASP.NET Identity(三)- 实现自定义MySQL ASP.NET Identity存储提供程序

ASP.NET Identity是一个可扩展的系统,你可以创建属于你自己的存储提供程序并且将它集成到你的应用中,而不需要重构你的应用.本章将介绍如何创建一个ASP.NET Identity的MySQL存储提供程序.关于如何创建自定义存储提供程序的概述请查看自定义ASP.NET Identity(一)- 自定义ASP.NET Identity存储提供程序.要完成这个指南,你必须安装Visual Studio 2013 Update 2. 这个指南将包含如下内容: 怎样在Azure上创建MySQL数

MSSQL如何修改默认数据库的存储路径

修改数据库存储路径之前我们得先对数据库做个剖析,得知道他的存储模式!数据库默认路径保存在注册表里,我们可以通过xp_instance_regwrite来修改注册表,具体以下方式是我在3A网络服务器上试验的方法,大家可以看下: 一.更改资料文件默认存放路径:EXEC xp_instance_regwrite   @rootkey='HKEY_LOCAL_MACHINE',   @key='Software\Microsoft\MSSQLServer\MSSQLServer',   @value_n

你需要知道的这几种 asp.net core 修改默认端口的方式

一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望 被框架所管制,那如何实现默认端口的修改呢? 骨架代码: public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder Cre

ASP.NET中修改从数据库获取的datatable中的值

有些时候,我们从数据库表中获取一个实体的对象,但有些内容并不是最终显示的内容,格式也都是不一样.经过一番尝试,发现datatable中的数值如果跟想要改变的类型不一致,就无法更改,只有添加新列,然后把想要显示的最终的数据赋给这一新列.在进行数据展示的时候,展示这一新列即可. 下附代码: public DataTable GetDT(string attName, int typeValue) { DataTable dt=dal.GetDT(attName,typeValue); DataCol

ASP.NET Identity 修改表名和主键类型

public class UserLogin : IdentityUserLogin<Guid> { } public class UserRole : IdentityUserRole<Guid> { } public class UserClaim : IdentityUserClaim<Guid> { } public class Role : IdentityRole<Guid, UserRole> { } public class User : I

ABP框架源码学习之修改默认数据库表前缀或表名称

1,源码 1 namespace Abp.Zero.EntityFramework 2 { 3 /// <summary> 4 /// Extension methods for <see cref="DbModelBuilder"/>. 5 /// </summary> 6 public static class AbpZeroDbModelBuilderExtensions 7 { 8 /// <summary> 9 /// Chan

PL/SQL那点事--&gt;修改Oracle数据库里面的字段长度

在开发过程中,遇到有个问题:在Oracle数据库中,利用PL/SQL数据库开发工具来开发,某一字段的长度不能满足需求时候,采用下面的语法就行修改 alter table 表名 modify 字段名 长度: 其中1为表名: 2为这个表里面的某一个字段: 3是这个表里面这一字段的类型长度: 在开始不知道怎么修改这个字段长度的时候,上网查看,结果是错误的,这个错误不好找,eg: alter table cust_device_apply modify column usecar_nature varc

django restframework serializer 增加自定义字段

在使用django restframework serializer 序列化在django中定义的model时,有时候我们需要额外在serializer中增加一些model中没有的字段.有两种方法实现这个目的. 假设现在有一个Animal模型,其中有name, type, country字段,country为外键.我们在序列化Animal时,需要额外增加外键country的area信息. 方法一: 1.首先,在django的model中定义property class Animal(models