ToB企服应用市场:ToB评测及商务社交产业平台

标题: .NET 开源权限认证项目 MiniAuth上线 [打印本页]

作者: 郭卫东    时间: 2024-8-6 15:26
标题: .NET 开源权限认证项目 MiniAuth上线
前言

在Web应用项目中权限认证是个绕不开的话题,传统方法复杂又耗时。MiniAuth推出专为.NET开发者设计的简单、实用的权限认证项目。
MiniAuth,作为ASP.NET Core的插件,让我们快速轻松实现用户登录、权限检查等功能。它支持多种认证方式,如JWT、Cookie,且易于集成到现有项目中。
无论是开发WebAPI 还是MVC应用,MiniAuth都能帮助我们快速搭建起背景管理体系。它简单易用,不改变现有数据库结构,也不增长学习成本。
MiniAuth,让权限管理不再繁琐,快速开发更加高效。快来试试吧!
项目介绍

MiniAuth 一个轻量 ASP.NET Core Identity Web 背景管理中心插件。
「一行代码」为「新、旧项目」 添加 Identity 体系跟用户、权限管理网页背景体系。
开箱即用,避免打掉重写或是严重耦合情况。
项目特点

项目使用

MiniAuth作为一个轻量级的ASP.NET Core Identity Web背景管理插件,其使用过程相对简单直观。
下面是一个根本的使用示例,帮助我们快速集成MiniAuth到ASP.NET Core项目中,具体步骤可以参考。
1、安装MiniAuth

首先,需要通过NuGet包管理器安装MiniAuth。
大概在Visual Studio中,打开NuGet包管理器控制台(或使用NuGet包管理器UI),并执行以下下令来安装MiniAuth:
  1. Install-Package MiniAuth
复制代码
也可以使用.NET CLI,通过以下下令安装:
  1. dotnet add package MiniAuth
复制代码

2、设置MiniAuth

安装完成后,需要在ASP.NET Core项目的Startup类或Program类(取决于使用的.NET Core版本)中设置MiniAuth。
对于.NET 6 或更高版本,这通常在Program.cs文件中完成设置
  1. public class Program  
  2. {  
  3.     public static void Main(string[] args)  
  4.     {  
  5.         var builder = WebApplication.CreateBuilder(args);  
  6.   
  7.         // 添加MiniAuth服务  
  8.         builder.Services.AddMiniAuth();  
  9.   
  10.         //如果需要自定义配置,如使用JWT认证,  
  11.         builder.Services.AddMiniAuth(options =>  
  12.         {  
  13.             options.AuthenticationType = MiniAuthOptions.AuthType.BearerJwt;  
  14.             options.JWTKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("自己的JWT密钥"));  
  15.         });  
  16.   
  17.         var app = builder.Build();  
  18.   
  19.         // 其他配置...  
  20.         app.Run();  
  21.     }  
  22. }
复制代码
3、访问管理页面

设置完成后,运行当前项目。MiniAuth将自动注册必要的路由和中心件,并提供一个默认的管理界面。
你可以通过访问以下URL来访问管理界面(请根据实际部署情况替换localhost:5000):
  1. http://localhost:5000/miniauth/index.html
复制代码
首次访问时,可以使用预设的管理员账号
账号: admin@mini-software.github.io
暗码: E7c4f679-f379-42bf-b547-684d456bc37f (请记得修改暗码)
即可管理你的 Identity 用户、角色、端点。

 


4、权限管理

MiniAuth提供了用户、角色和权限的管理功能。可以通过管理界面来创建新用户、分配角色以及管理权限。
对于需要权限控制的API或页面,可以在相应的控制器或方法上使用[Authorize]属性或[Authorize(Roles = "角色名")]属性来限制访问。
5、自定义和扩展

MiniAuth提供了灵活的扩展点,可以根据项目需求进行自定义。通过实现或扩展MiniAuth提供的接口和类来定制认证流程、用户数据存储等。
MiniAuth 预设为单体 Coookie Based identity,如前后端分离项目请更换 JWT 等 Auth。
指定 AuthenticationType 为 BearerJwt
  1. var builder = WebApplication.CreateBuilder(args);
  2. builder.Services.AddMiniAuth(options:(options) =>
  3. {
  4.     options.AuthenticationType = AuthType.BearerJwt;
  5. });
复制代码
请记得自定义 JWT Security Key,如:
  1. var builder = WebApplication.CreateBuilder(args);
  2. builder.Services.AddMiniAuth(options: (options) =>
  3. {
  4.     options.JWTKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("6ee3edbf-488e-4484-9c2c-e3ffa6dcbc09"));
  5. });
复制代码
为IT Admin 集中用户管理,用户注册、暗码重置等操作需要 Admin 权限账号操作,预设 Role = miniauth-admin
假如你只想用自己的登录逻辑、页面、API,可以指定登录路径,关闭开关
  1. // 放在 service 注册之前
  2. builder.Services.AddMiniAuth(options: (options) =>
  3. {
  4.     options.LoginPath = "/Identity/Account/Login";
  5.     options.DisableMiniAuthLogin = true;
  6. });
复制代码
  1. builder.Services.AddMiniAuth(options: (options) =>
  2. {
  3.     options.SqliteConnectionString = "Data Source=miniauth_identity.db";
  4. });
复制代码
MiniAuth 体系预设使用 SQLite EF Core、IdentityUser、IdentityRole开箱即用 假如需要切换请在 app.UseMiniAuth 泛型指定差别的数据库、自己的用户、角色种别。
  1. app.UseMiniAuth<YourDbContext, YourIdentityUser, YourIdentityRole>();
复制代码
注意事项

1、确保项目已经安装了ASP.NET Core Identity相关的包,因为MiniAuth是基于ASP.NET Core Identity构建的。
2、根据项目需求,选择合适的认证方式(如JWT、Cookie等)。
3、注意顺序,请将 UseMiniAuth 放在路由生成之后,否则体系无法获取路由数据作权限判断,如 :
  1. app.UseRouting();app.UseMiniAuth<YourDbContext, YourIdentityUser, YourIdentityRole>();
复制代码
4、请添加 Role 规则
请添加 AddRoles(),否则 [Authorize(Roles = "权限")] 不会生效
  1. builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
  2.     .AddRoles<IdentityRole>() // ❗❗❗
  3.     .AddEntityFrameworkStores<ApplicationDbContext>();
复制代码
项目地点

Github:https://github.com/mini-software/MiniAuth
Gitee:https://gitee.com/dotnetchina/MiniAuth
 假如你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继承分享知识的动力。假如有任何疑问或需要进一步的帮助,欢迎随时留言。
也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4