From: 011netservice@gmail.com
Date: 2020-04-02
Subject: 實作 Microsoft.AspNet.Identity.EntityFramewor (Visual Studio 2019)

本文示範在 Visual Studio 2019 ASP.NET Web Forms 網站中, 替換掉 Microsoft.AspNet.Identity.EntityFramework 的方法.

歡迎來信交流, 訂購軟體需求.

修改的方法, 跟先前修改 Visual Studio 2015 的方法相同:
1. SQLServer
2. MySQL
但是這次的目標是要修改 Visual Studio 2019 自動產生的 WebForms 程式.

這一系列的程式修改結果, 可從以下網址下載:
  1. WebAuthSQL: Visual Studio 2015, WebForms, SQLServer
  2. WebAuthMySQL: Visual Studio 2015, WebForms, MySql
  3. WebIdentitySqlServer: Visual Studio 2019, WebForms, SQLServer (本文)
本文主要說明在 Visual Studio 2019, NET Framework 4.8 環境下的修改差異.

步驟:
  1. 建立網站 WebIdentitySqlServer
  2. 解除安裝 Microsoft.AspNet.Identity.EntityFramework 元件 及 EntityFrameWork 元件
  3. 移除參考 EntityFramework 及 EntityFramework.SQLServer
  4. 加入自訂的 ASP.NET Identity 實作程式
  5. 將 Microsoft.AspNet.Identity.EntityFramework 改為使用 ZIdentitySqlServer
  6. 將 IdentityModel.cs 之 ApplicationUser 改為繼承 ZUser, ApplicationDbContext 改為繼承 ZSqlClient
  7. 將 IdntityConfig.cs 取得的 ApplicationDBContext 改為 ZSqlClient
  8. 將 Web.Config 之 ConnnectionString 改到新的資料庫位置
  9. 建立新資料庫, 移除舊資料庫
  10. 編譯執行測試
步驟詳細說明:
  1. 建立網站專案 WebIdentitySqlServer
    預定修改的網站, 可自行以 Visual Studio 2019 自動產生(選擇 Web Forms, Authentication=Individual User Accounts). 或是下載 WebForm6後, 將專案名稱改為WebIdentitySqlServer.



  2. 解除安裝 Microsoft.AspNet.Identity.EntityFramework 元件 及 EntityFrameWork





  3. 移除參考 EntityFramework 及 EntityFramework.SQLServer

  4. 加入自訂的 ASP.NET Identity 實作程式
    本文提供 Visual Studio 2019 的程式庫版本專案補齊:
    1. ZLib: 公用程式庫.
    2. ZSqlClient: 存取 SQL Server 資料庫公用程式庫. (也可用於 MSSQLLocalDB 或 SQL Express 資料庫)
    3. ZIdentitySqlServer: 替代 Microsoft.AspNet.Identity.EntityFramework, 存取ASP.NET Identity身分認證資料庫的公用程式庫.
    請將這三個專案, 加入 Solution 中並參考引用.


    ASP.NET Identity身分認證資料庫 ERD of ASP.NET Identity
  5. 將 Microsoft.AspNet.Identity.EntityFramework 改為使用 ZIdentitySqlServer
    將專案中, 所有的 using Microsoft.AspNet.Identity.EntityFramework; 的 .cs 程式, 都改成 using ZIdentitySqlServer;
    需要修改的程式清單如下:
    App_Start\IdentityConfig.cs
    App_Start\Startup.Auth.cs
    Models\IdentityModel.cs
    Account\Manage.aspx.cs

  6. 將 IdentityModel.cs 之 ApplicationUser 改為繼承 ZUser, ApplicationDbContext 改為繼承 ZSqlClient


  7. 將 IdntityConfig.cs 取得的 ApplicationDBContext 改為 ZSqlClient


  8. 將 Web.Config 之 ConnnectionString 改到新的資料庫位置


  9. 建立新資料庫, 移除舊資料庫
    參考 CreateDBAspNet1-SqlServer.sql 建立 SQL Server 新資料庫 DBAspNet1
    移除在 App_Data 目錄下的舊資料庫 MSSQLLocalDB:
    App_Data\*.MDF
    App_Data\*.LDF

  10. 編譯執行測試
    - 測試帳號:
    - test1@some.com, aaBB11!!
    - test2@some.com, aaBB22!!

Log

Log:
20200402, Honda, Create.
20221010, Honda, Update links.
開放時間 09:00 ~ 18:00 |   |   |   |