Microsoft .Net Core Requirements

netcorereq

Microsoft .Net Core Requirements | ISBN: 0735619255 | CHM | 8.73 MB| 2704 pages |
Publisher: Microsoft Press (April 9, 2003) | Author : Microsoft Corporation

1. Developing Windows-Based Applications - 2nd ed.
  • Developing and Implementing Windows-Based Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET (Exam 70-306)
  • Developing and Implementing Windows-Based Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET (Exam 70-316)


2. Developing Web Applications - 2nd ed.
  • Developing and Implementing Web Applications with Microsoft Visual Basic .NET and Microsoft Visual Studio .NET (Exam 70-305).
  • Developing and Implementing Web Applications with Microsoft Visual C# .NET and Microsoft Visual Studio .NET (Exam 70-315).


3. Developing XML Web Services and Server Components
  • Developing XML Web Services and Server Components with Microsoft Visual Basic .NET and the Microsoft .NET Framework (MCP Exam 70-310)
  • Developing XML Web Services and Server Components with Microsoft Visual C# .NET and the Microsoft .NET Framework (MCP Exam 70-320)


4. Analyzing Requirements and Defining Microsoft .NET Solution Architectures
  • Analyzing Requirements and Defining Microsoft .NET Solution Architectures
    Microsoft Certified Professional (Exam 70-300)



Amazon.com

http://rapidshare.de/files/30286292/NETCore.rar
Password : Password
 
 
 
Posted by :: imre | Date :: Aug 22, 2006 16:06:44
Mirror link:
http://www.uploading.com/?get=CGUKP0FM
Same password
 
### .NET Core 6.0 中的 RBAC 实现与使用 RBAC(Role-Based Access Control,基于角色的访问控制)是一种广泛应用于现代软件开发中的权限管理机制。它通过定义用户的角色以及这些角色所拥有的权限来实现细粒度的安全控制。 #### 1. ASP.NET Core Identity 基础 ASP.NET Core 提供了一个内置的身份验证框架——Identity,该框架支持用户、角色和权限的管理。在 .NET Core 6.0 中,可以通过扩展 `Microsoft.AspNetCore.Identity` 来实现 RBAC 功能[^3]。 以下是主要组件及其作用: - **User**: 表示系统的最终用户。 - **Role**: 定义一组权限集合。 - **Claim**: 描述用户的属性或能力(例如,“管理员”或“编辑文章”)。 - **Policy**: 将 Claim 和 Role 结合起来形成更复杂的授权逻辑。 #### 2. 数据库配置 为了存储用户、角色及相关数据,在项目中通常会引入 Entity Framework Core 并创建相应的数据库上下文类。以下是一个典型的 DbContext 配置: ```csharp using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; public class ApplicationDbContext : IdentityDbContext<ApplicationUser> { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { } protected override void OnModelCreating(ModelBuilder builder) { base.OnModelCreating(builder); } } ``` 这里继承自 `IdentityDbContext<T>` 类型,并指定应用特定的应用程序用户模型 `ApplicationUser`。 #### 3. 用户和角色初始化 在应用程序启动时,可能需要预加载一些基本的数据到数据库里,比如超级管理员账户或者默认角色等操作可以在迁移脚本执行完毕之后完成。 下面展示如何向系统添加初始用户和角色的例子: ```csharp var roleManager = serviceProvider.GetRequiredService<RoleManager<IdentityRole>>(); if (!await roleManager.RoleExistsAsync("Admin")) { await roleManager.CreateAsync(new IdentityRole { Name = "Admin", NormalizedName = "ADMIN" }); } var userManager = serviceProvider.GetRequiredService<UserManager<ApplicationUser>>(); var adminUser = new ApplicationUser { UserName = "admin@example.com", Email = "admin@example.com" }; if (await userManager.FindByNameAsync(adminUser.UserName) == null) { var result = await userManager.CreateAsync(adminUser, "SecurePassword@1"); if (result.Succeeded) { await userManager.AddToRoleAsync(adminUser, "Admin"); } } ``` 这段代码片段展示了如果不存在名为 Admin 的角色,则先创建;接着检查是否存在用户名为 admin@example.com 的用户,如果没有则新建并赋予其 Admin 角色。 #### 4. 控制器级别的授权策略 一旦设置了基础结构就可以开始编写具体的业务逻辑了。对于简单的场景可以直接利用 `[Authorize(Roles="...")]` 属性来进行控制器层面的保护: ```csharp [Authorize(Roles = "Admin")] public IActionResult ManageUsers() { return View(); } ``` 而对于更加复杂的要求可以考虑采用 Policies 方式定制自己的规则集. #### 5. 自定义 Policy 授权处理程序 当需求超出标准 Roles 或 Claims 能够表达的能力范围之外的时候就需要构建个性化解决方案了。这涉及到注册新的 AuthorizationHandler 及关联对应的 Requirement 对象实例。 首先定义 requirement : ```csharp public class MinimumAgeRequirement : IAuthorizationRequirement { public int MinAge { get; } public MinimumAgeRequirement(int minAge) { MinAge = minAge; } } ``` 然后建立 handler 处理请求过程中的判断依据: ```csharp public class MinimumAgeHandler : AuthorizationHandler<MinimumAgeRequirement> { protected override Task HandleRequirementAsync(AuthorizationHandlerContext context, MinimumAgeRequirement requirement) { if (!context.User.HasClaim(c => c.Type == "age" && int.Parse(c.Value) >= requirement.MinAge)) return Task.CompletedTask; context.Succeed(requirement); return Task.CompletedTask; } } ``` 最后记得把它们加入服务容器以便于 DI 使用: ```csharp services.AddAuthorization(options => { options.AddPolicy("AtLeast21", policy => policy.Requirements.Add(new MinimumAgeRequirement(21))); }); // 注册 handlers. services.AddSingleton<IAuthorizationHandler, MinimumAgeHandler>(); ``` 现在你可以这样标记方法以启用新政策: ```csharp [Authorize(Policy = "AtLeast21")] public IActionResult AdultContent() {} ``` 以上就是关于在 .NET Core 6.0 上实施 RBAC 的全面指南。希望对你有所帮助! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值