2017年12月21日 星期四

C# ASP.NET MVC 手動將 Identity 加入現有專案


原因:我發現其實手動加入Identity功能的機率實在是蠻高的,每次做一次就忘記一次所以就寫一篇來幫助自己快速回憶跟製作。






新增一個有驗證功能的MVC專案



在需要手動加入Identity 專案參考點擊右鍵


點擊 [管理NuGet套件]


搜尋並且加入三個套件
Microsoft.AspNet.Identity.EntityFramework
Microsoft.AspNet.Identity.Owin.zh-Hant (繁體中文)
Microsoft.Owin.Host.SystemWeb


將新增的專案以下檔案照著原始位置搬移過去
App_Start>IdentityConfig.cs
App_Start>Startup.Auth.cs
AccountController>AccountController.cs (可以依照所需要搬移就好)
AccountController>ManageController.cs (可以依照所需要搬移就好)
Models>全部內容(可以依照所需要搬移就好)
Views>全部內容(可以依照所需要搬移就好)
Startup.cs


PS.注意搬移過去的檔案記得要改namespace 和 using 位置 ex:[你的方案名稱].Controllers


<connectionStrings>
    <add name="BlogconnectionStrings" connectionString="Data Source=[連線字串];Initial Catalog=[資料庫名稱];Persist Security Info=True;user ID=[連線帳號];password=[連線密碼]" providerName="System.Data.SqlClient" />
  </connectionStrings>
接下來就是要去設定連線字串,可是像我本來就已經是使用 EntityFramework ,連線字串的名稱有改變過,所以如果你跟我一樣的話就去更換Identity的連線名稱位置在 Models>IdentityModels.cs 將他改成現在所使用的連線名稱,像是我的web.config > connectionStrings Name 是使用 BlogconnectionStrings 我就將此處改成 BlogconnectionStrings。


<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=[連線字串];Initial Catalog=[資料庫名稱];Persist Security Info=True;user ID=[連線帳號];password=[連線密碼]" providerName="System.Data.SqlClient" />
  </connectionStrings>
那如果你之前沒有使用EntityFramework就可以參考新增出來的Identity範本裡面的web.config來將連線字串新增上去

之後就大功告成囉~可喜可賀可喜可賀~



  public class ApplicationUser : IdentityUser

    {

        public async Task GenerateUserIdentityAsync(UserManager manager)

        {

            // 注意 authenticationType 必須符合 CookieAuthenticationOptions.AuthenticationType 中定義的項目

            var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);

            // 在這裡新增自訂使用者宣告

            return userIdentity;

        }

    }



沒有留言:

張貼留言

解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題

  解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題 環境 Server:Windows Server 2012 R2 Debug IDE: VS2019 Step1 確認是否有安裝Microsoft Access Dat...