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
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。