本系列的的角色权限管理主要采用Dotnet MVC4工程内置的权限管理模块Simplemembership实现,主要有关文件是InitializeSimpleMembershipAttribute.cs和AccountModels.cs

下面是对这两个文件的了解和改造

ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)

 WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);表示数据库表不存在的情况下,通过连接到包含用户信息的数据库以及使用指定的成员资格或角色提供程序来初始化成员资格系统。

首先创建一个MVCSystem的空数据库,如下:

ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)

然后改造配置文件Web.config数据库链接,注意这里的name="DefaultConnection"与上面的WebSecurity.InitializeDatabaseConnection("DefaultConnection", "UserProfile", "UserId", "UserName", autoCreateTables: true);相同

ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)

然后运行程序,在空数据库MVCSystem中生成以下数据表(有的可能无法生存webpages_Permission,webpages_PermissionsInRoles表,不过没关系,手动建(字段参考下图)就可以了)

ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)

对于运行后无法自动生成数据表的同学,可以点击一下Home page上的注册按钮!

接下来创建和改造Models类:

AccountModels.cs【管理员管理页面的一些基本的ViewModel】

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel.DataAnnotations;
 4 using System.ComponentModel.DataAnnotations.Schema;
 5 using System.Data.Entity;
 6 using System.Globalization;
 7 using System.Web.Security;
 8 
 9 namespace MVCSystem.Web.Models
10 {
11    
12 
13     public class RegisterExternalLoginModel
14     {
15         [Required]
16         [Display(Name = "用户名")]
17         public string UserName { get; set; }
18 
19         public string ExternalLoginData { get; set; }
20     }
21 
22     public class LocalPasswordModel
23     {
24         [Required]
25         [DataType(DataType.Password)]
26         [Display(Name = "当前密码")]
27         public string OldPassword { get; set; }
28 
29         [Required]
30         [StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)]
31         [DataType(DataType.Password)]
32         [Display(Name = "新密码")]
33         public string NewPassword { get; set; }
34 
35         [DataType(DataType.Password)]
36         [Display(Name = "确认新密码")]
37         [Compare("NewPassword", ErrorMessage = "新密码和确认密码不匹配。")]
38         public string ConfirmPassword { get; set; }
39     }
40 
41     public class LoginModel
42     {
43         [Required]
44         [Display(Name = "用户名")]
45         public string UserName { get; set; }
46 
47         [Required]
48         [DataType(DataType.Password)]
49         [Display(Name = "密码")]
50         public string Password { get; set; }
51 
52         [Display(Name = "记住我?")]
53         public bool RememberMe { get; set; }
54     }
55 
56     public class RegisterModel
57     {
58         [Required]
59         [Display(Name = "用户名")]
60         public string UserName { get; set; }
61 
62         [Required]
63         [StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)]
64         [DataType(DataType.Password)]
65         [Display(Name = "密码")]
66         public string Password { get; set; }
67 
68         [DataType(DataType.Password)]
69         [Display(Name = "确认密码")]
70         [Compare("Password", ErrorMessage = "密码和确认密码不匹配。")]
71         public string ConfirmPassword { get; set; }
72     }
73 
74     public class ExternalLogin
75     {
76         public string Provider { get; set; }
77         public string ProviderDisplayName { get; set; }
78         public string ProviderUserId { get; set; }
79     }
80 }
View Code

相关文章:

  • 2022-12-23
  • 2022-03-01
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案