嘗試創建一個簡單的 MVC 應用程序,該應用程序具有基本的用戶帳戶管理和社交帳戶注冊。創建具有個人身份驗證的 ASP.NET Core 2.2 應用程序,通過 NuGet(sqlserver 和工具)添加 EF 核心。我之前已經構建了一些基本的 ASP.NET MVC 應用程序和其他語言的 MVC 應用程序。我讓 Facebook 登錄按照本教程工作?,F在我迷路了。有一個“數據”目錄,里面已經有一堆代碼,還有普通的 MVC 目錄。但是,我沒有看到與我在啟動應用程序時可以清楚地訪問的帳戶管理相關的任何頁面或操作相關的 MVC 文件,包括/Identity/Account/Login、/Identity/Account/Manage、/Identity/Account/Manage/SetPassword等。雖然在幾分鐘內啟動并運行所有這些功能很酷,但我已經處于不知道它如何工作或為什么工作的劣勢。搜索任何我希望對此有所了解的東西都會給我提供技術文檔,讓我頭暈目眩并提供零啟示。我想要一個與每個用戶相關聯的數據集(“書籍”)的集合。一個用戶對多本書。鑒于用戶(帳戶?)模型不在 MVC 應用程序的 Models 目錄中,我認為不應在此處添加它。如果是,我不知道如何創建與用戶的關聯。這就是我在一個名為ApplicationDbContextModelSnapshot.csnamespace Bookshelf.Data.Migrations [DbContext(typeof(ApplicationDbContext))] partial class ApplicationDbContextModelSnapshot : ModelSnapshot { protected override void BuildModel(ModelBuilder modelBuilder) { ... modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { b.Property<string>("Id") .ValueGeneratedOnAdd(); b.Property<string>("ConcurrencyStamp") .IsConcurrencyToken(); b.Property<string>("Name") .HasMaxLength(256); b.Property<string>("NormalizedName") .HasMaxLength(256); b.HasKey("Id"); b.HasIndex("NormalizedName") .IsUnique() .HasName("RoleNameIndex") .HasFilter("[NormalizedName] IS NOT NULL"); b.ToTable("AspNetRoles"); });...等等,看起來相當可讀,但與我迄今為止看到的任何教程都不匹配。TL;博士:我在哪里/如何正確創建新模型?在 Models 目錄中是這樣的(我習慣了)還是已經過時了?無論哪種方式,在給定 ASP.NET Core 2.2 的內置用戶帳戶管理的情況下,如何正確地將數據與用戶關聯?
1 回答

慕容森
TA貢獻1853條經驗 獲得超18個贊
有一個“數據”目錄,里面已經有一堆代碼,還有普通的 MVC 目錄。但是,我沒有看到與我在啟動應用程序時可以清楚訪問的任何與帳戶管理相關的頁面或操作相關的 MVC 文件,包括 /Identity/Account/Login、/Identity/Account/Manage、 /身份/帳戶/管理/設置密碼等
這是因為從 ASP.NET Core 2.1 開始,身份作為Razor 類庫與 ASP.NET Core 項目模板一起提供。如果您想查看那些與身份相關的代碼并進行自定義,那么您必須在項目中使用腳手架身份。
以下是有關此的更多詳細信息:ASP.NET Core 項目中的腳手架標識
此外,如果您需要 MVC 格式的 ASP.NET Core 標識,那么這里是我的 GitHub存儲庫,其中 Razor 頁面標識已在 ASP.NET Core 2.2 中轉換為 MVC。
- 1 回答
- 0 關注
- 116 瀏覽
添加回答
舉報
0/150
提交
取消