【愚公系列】2022年03月 .NET架构班 013-ABP vNext 账户模块

举报
愚公搬代码 发表于 2022/03/04 01:44:42 2022/03/04
【摘要】 一、账户模块账户模块作为Abpvnext的一个业务模块,指的就是为系统提供 登录/注册功能的模块目的:在系统中确定用户的身份; 身份代表着用户的身份证 使用身份保证系统的安全 用户不等于身份 使用身份就是用来区分不同的用户如果没有账户,对于用户无法验证,任何人都可以攻击 1.账户模块的源码下载地址:https://github.com/abpframework/abp/tree/dev/...

一、账户模块

账户模块作为Abpvnext的一个业务模块,指的就是为系统提供 登录/注册功能的模块

目的:在系统中确定用户的身份; 身份代表着用户的身份证 使用身份保证系统的安全 用户不等于身份 使用身份就是用来区分不同的用户

如果没有账户,对于用户无法验证,任何人都可以攻击

1.账户模块的源码

下载地址:

https://github.com/abpframework/abp/tree/dev/modules/account

二、集成账户模块

1.EBusiness.Application.Contracts集成账户模块

1、先在项目中通过Nuget下载

Volo.Abp.Account.Application.Contracts

2、然后在EBusinessApplicationContractsModule文件上增加

[DependsOn(
        typeof(AbpAccountApplicationContractsModule)
        )]
    public class EBusinessApplicationContractsModule: AbpModule
 {}

2.EBusiness.Application集成账户模块

1、先在项目中通过Nuget下载

Volo.Abp.Account.Application

2、然后在EBusinessApplicationModule文件上增加

[DependsOn(
        typeof(AbpAccountApplicationModule)
        )]
    public class EBusinessApplicationContractsModule: AbpModule

 {}

3.EBusiness.HttpApi集成账户模块

1、先在项目中通过Nuget下载

Volo.Abp.Account.HttpApi

2、然后在EBusinessHttpApiModule文件上增加

[DependsOn(
        typeof(AbpAccountHttpApiModule)
        )]
    public class EBusinessApplicationContractsModule: AbpModule
 {}

4.EBusiness.HttpApi.Host配置账户模块

配置服务ConfigureServices

 ConfigureAuthentication(context, configuration);
private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration)
{
    context.Services.AddAuthentication()
        .AddJwtBearer(options =>
        {
            options.Authority = configuration["AuthServer:Authority"];
            options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
            options.Audience = "EBusiness";
            options.BackchannelHttpHandler = new HttpClientHandler
            {
                ServerCertificateCustomValidationCallback =
                    HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
            };
        });
}

OnApplicationInitialization中加上

app.UseAuthentication();

三、使用账户模块

1、先启动EBusiness.HttpApi.Host

dotnet run 

2、用户注册
在这里插入图片描述
在这里插入图片描述
3.创建订单业务测试

public async Task<OrderDto> CreateAsync(CreateOrderDto input)
{
   var guid =  CurrentTenant.Id;
    // 1、创建订单
    Order order = new Order(GuidGenerator.Create());
    order = ObjectMapper.Map<CreateOrderDto,Order>(input,order);
    // 1、获取用户信息
   // Claim[] claims = CurrentUser.GetAllClaims();
    order.UserId = CurrentUser.Id.Value;
    // 2、保存订单
    await _OrderRepository.InsertAsync(order);

    // 3、扣减商品库存
    // 1、先查询商品
    /*foreach (var orderItemDto in input.OrderItems)
    {
        Product product = await _productAbpRepository.GetAsync(orderItemDto.ProductId);
        product.ProductStock = product.ProductStock - input.ProductCount;
        await _productAbpRepository.UpdateAsync(product);
    }
	//事务的使用
    await CurrentUnitOfWork.SaveChangesAsync();*/
    
    // 3.1 发送邮件
    string flag = FeatureChecker.GetOrNullAsync(EBusinessFeatures.Orders.IsEmail).Result;
    if (flag.Equals("true"))
    {
        Console.WriteLine("发送邮件");
    }

    // 3.2 发送短信
    string IsSmsflag = FeatureChecker.GetOrNullAsync(EBusinessFeatures.Orders.IsSms).Result;
    if (IsSmsflag.Equals("true"))
    {
        Console.WriteLine("发送短信");
    }

    // 权限,特征,设置。操作一模一样。本质:都是字符串。
    // 前提(场景)不一样。
    // 权限:用户 功能多少
    // 特征:多租户 。功能的多少。多租户功能多少
    // 设置:系统配置。功能的种类(选择)。多少不变,种类改变

    // 特征:默认是根据多租户来决定多少功能?
    // 扩展:根据用户来决定多少功能

    // _emailSender.SendAsync("网站","QQ","订单创建成功");

    // 4、返回订单
    return ObjectMapper.Map<Order, OrderDto>(order);
}

四、账户模块其他客户端使用

1.EBusiness.Web页面访问账户模块

1、先在项目中通过Nuget下载

Volo.Abp.Account.Web

2、然后在EBusinessApplicationModule文件上增加

[DependsOn(
	typeof(AbpAccountWebModule)
)]
 public class EBusinessWebModule: AbpModule
 {}

2.OA系统调用账户模块

1、先在项目中通过Nuget下载

Volo.Abp.Account.HttpApi.Client

2、然后在YDT.OA文件上增加

 [DependsOn(
	typeof(AbpAccountHttpApiClientModule)
 )]
 public class OAModule: AbpModule
 {}
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。