MiniAuth 一個輕量 ASP.NET Core Identity Web 後台管理插件
「一行代碼」為「新、舊專案」 添加 Identity 系統跟用戶、權限管理後台 Web UI
開箱即用,避免打掉重寫或是嚴重耦合情況
從 NuGet 安裝套件
dotnet add package MiniAuth
// or
NuGet\Install-Package MiniAuth
在 Startup 添加一行代碼 services.AddMiniAuth()
並運行專案,例子:
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddMiniAuth();
var app = builder.Build();
app.Run();
}
}
預設 admin 管理賬號為 admin@mini-software.github.io
密碼為 E7c4f679-f379-42bf-b547-684d456bc37f
(注意記得修改密碼)
管理頁面為 http(s)://yourhost/miniauth/index.html
注意: 如有自己的 identiy auth 請看以下注意點
把 AddMiniAuth autoUse 關閉,將 UseMiniAuth 並在泛型參數換上自己的 IdentityDBContext、用戶、權限認證,放在自己的 Auth 之後,例子:
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(connectionString));
builder.Services.AddDatabaseDeveloperPageExceptionFilter();
builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>();
builder.Services.AddControllersWithViews();
builder.Services.AddMiniAuth(autoUse: false); // <= ❗❗❗
var app = builder.Build();
app.UseMiniAuth<ApplicationDbContext, IdentityUser, IdentityRole>(); // <= ❗❗❗
app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
app.MapRazorPages();
app.Run();
}
請將 UseMiniAuth 放在路由生成之後,否則系統無法獲取路由數據作權限判斷,如 :
app.UseRouting();
app.UseMiniAuth();
請添加 AddRoles<IdentityRole>()
,否則 [Authorize(Roles = "權限")]
不會生效
builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddRoles<IdentityRole>() // ❗❗❗
.AddEntityFrameworkStores<ApplicationDbContext>();
如果你只想用自己的登錄邏輯、頁面、API,可以指定登錄路徑,關閉開關
// 放在 service 註冊之前
MiniAuthOptions.LoginPath = "/Identity/Account/Login";
MiniAuthOptions.DisableMiniAuthLogin = true;
MiniAuth 系統預設使用 SQLite,無需做任何設定代碼
如果需要切換請在 app.UseMiniAuth
泛型指定不同的資料庫型別。
非 ApiController 預設登錄導向 login.html 頁面 (判斷方式Headers["X-Requested-With"] == "XMLHttpRequest" 或是 ApiControllerAttribute) ApiController 的 Controller 預設不會導向登錄頁面,而是返回 401 status code
/src/Frontend_Identity
主體使用 Vue3 + Vite,使用 npm run build 後即可更新 miniauth 的 UI請查看 Release Notes
Link : MiniAuth.Identify project
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。