自定義用戶
框架自帶了用戶管理,但是很多人使用框架遇到的第一個(gè)問(wèn)題就是自己的用戶結(jié)構(gòu)要多一些字段
下面演示了如何通過(guò)繼承框架用戶的方式編寫自己的用戶管理
-
首先我們?cè)贛odel中建立一個(gè)類,繼承FrameworkUserBase,比如叫做MyUser
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using WalkingTec.Mvvm.Core;
namespace YourNameSpace.Models
{
[Table("FrameworkUsers")]
public class MyUser : FrameworkUserBase
{
[Display(Name = "附加信息1")]
public string Extra1 { get; set; }
[Display(Name = "附加信息2")]
public string Extra2 { get; set; }
}
}
-
上面的代碼告訴框架同樣使用FrameworkUsers表,只是增加兩個(gè)字段
在DataAccess項(xiàng)目中,修改DataContext文件,加入MyUser,因?yàn)镸yUser繼承了FrameworkUserBase,所以其實(shí)并不會(huì)增加新表,但是會(huì)在FrameworkUser表中增加一個(gè)叫做Discriminator的列,這是EF的規(guī)則
public class DataContext : FrameworkContext
{
public DbSet<MyUser> MyUsers { get; set; }
public DataContext(string cs, DBTypeEnum dbtype)
: base(cs, dbtype)
{
}
}
-
按F5運(yùn)行,現(xiàn)在我們有一個(gè)MyUser的Model,并且讓數(shù)據(jù)庫(kù)也生成了相應(yīng)的表
因?yàn)樵黾恿薉iscriminator字段,你需要更新數(shù)據(jù)庫(kù),或者使用一個(gè)新庫(kù)名讓EF自動(dòng)生成
-
然后就像我們生成其他模塊一樣,使用代碼生成器來(lái)生成MyUser
-
在代碼生成器中,選擇MyUser,業(yè)務(wù)模塊名稱比如叫做自定義用戶管理
-
代碼生成完畢后,關(guān)閉瀏覽器,重新啟動(dòng)調(diào)試,我們可以看到左側(cè)菜單已經(jīng)有了自定義用戶管理,和框架自帶的沒(méi)有什么區(qū)別,但是已經(jīng)有了你需要的字段
唯一需要修改一下的就是框架的登陸是MD5驗(yàn)證的,所以當(dāng)你添加MyUser之前,記得加上一句Entity.Password = Utils.GetMD5String(Entity.Password);把密碼MD5加密一下
-
去菜單管理,點(diǎn)擊同步模塊,這樣會(huì)把你新加的自定義用戶管理加到系統(tǒng)模塊中
然后,把原有的用戶管理修改為不在菜單顯示,并把這個(gè)新的自定義用戶管理添加到菜單中
在非調(diào)試模式下(Appsettings文件中IsQuickDebug=false),左側(cè)菜單變成你新的用戶管理了
更多建議: