不在軟體公司要寫軟體好難啊,沒時間啊。所以大概會很慢很慢才能把我想要的做出來呢。慢慢來吧。
微軟提供了快速搭建使用者註冊登入的方案,雖然看起來還是蠻複雜的,但是簡單用下還是很方便的。
在這裡只是想做個簡單的後台,有基本的許可權管理,並且有個簡單的表的增刪查改的例子。
源碼已經傳到github,https://github.com/wuyt/RCKohi
先裝vs2017和 .net core的環境。
建立項目
選擇 ASP.NET Core Web應用
選擇版本,MVC的Web應用,更改身分識別驗證。
這裡沒選用Web 應用程式,其實就是沒用razor + mvc的模式。Web 應用程式的模式雖然看上去似乎還是不錯的,但是,微軟自己都沒把這個功能做進vs裡,還要靠外掛程式和命令列來添加,實在讓人覺得微軟自己也沒信心。所以,還是等vs自來了這個功能以後再考慮吧。
選擇個人使用者帳號,儲存應用內的使用者帳號
修改好了以後,點擊確定
這個時候,vs會自動產生一個帶使用者註冊和登入的項目
開啟Startup.cs,在ConfigureServices方法中,新增內容
在裡面添加代碼如下,
services.Configure<IdentityOptions>(options => { // Password settings options.Password.RequireDigit = false; options.Password.RequiredLength = 6; options.Password.RequireNonAlphanumeric = false; options.Password.RequireUppercase = false; options.Password.RequireLowercase = false; options.Password.RequiredUniqueChars = 6; // Lockout settings options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(30); options.Lockout.MaxFailedAccessAttempts = 5; options.Lockout.AllowedForNewUsers = false; // User settings options.User.RequireUniqueEmail = false; }); services.ConfigureApplicationCookie(options => { // Cookie settings options.Cookie.HttpOnly = true; options.Cookie.Expiration = TimeSpan.FromDays(150); options.LoginPath = "/Account/Login"; // If the LoginPath is not set here, ASP.NET Core will default to /Account/Login options.LogoutPath = "/Account/Logout"; // If the LogoutPath is not set here, ASP.NET Core will default to /Account/Logout options.AccessDeniedPath = "/Account/AccessDenied"; // If the AccessDeniedPath is not set here, ASP.NET Core will default to /Account/AccessDenied options.SlidingExpiration = true; });
上面的代碼是配置登入資訊的,具體可以參加微軟官方教程:https://docs.microsoft.com/zh-cn/aspnet/core/security/authentication/identity-configuration?tabs=aspnetcore2x
開啟 appsettings.json,設定下資料庫連接。這裡我只是簡單的改了資料庫名稱。
點擊調試運行
稍等一會,就能看到頁面了。
點擊右上方的 註冊
這時候會跳到註冊頁面,填寫下內容點擊註冊按鈕。
這個時候,頁面會變成下面的樣子,是因為登入用的資料庫內容還沒表結構。點擊藍色的按鈕
等看到重新重新整理頁面的提示後,重新整理下頁面。
這個時候,就正確了,會自動登入進去,點擊郵箱能看到使用者的資訊。