当前位置: 首页 > news >正文

网络营销整合推广搜索引擎优化是什么?

网络营销整合推广,搜索引擎优化是什么?,微信商城开发实惠华网天下,软文发布一、鉴权和授权(grpc专栏结束后会开启鉴权授权专栏欢迎大家关注) 权限认证这里使用IdentityServer4配合JWT进行认证通过AddAuthentication和AddAuthorization方法进行鉴权授权注入;通过UseAuthentication和UseAuthorization启用鉴权授权增加…

一、鉴权和授权(grpc专栏结束后会开启鉴权授权专栏欢迎大家关注)

  1. 权限认证这里使用IdentityServer4配合JWT进行认证
  2. 通过AddAuthentication和AddAuthorization方法进行鉴权授权注入;通过UseAuthentication和UseAuthorization启用鉴权授权
  3. 增加授权策略处理
  4. 使用密码模式,及简易内存处理
  5. 生成token带入grpc的metadata进行传递
  6. 服务端对应的方法标记特性[Authorize]进行验证
  7. 代码中会有对应的注释说明,如果对您有用,可静下心来细致的浏览

二、实战案例

  1. 需要一个授权中心服务
  2. 需要一个gRPC后端服务
  3. 需要一个客户端调用对应的授权中心和gRPC后端服务

第一步:授权中心

        1)引入IdentityServer4包

        2)添加IdentityServer注入及启用IdentityServer

// 添加IdentityServer4注入// 注入id4服务 配置开发证书 配置内存客户端client
builder.Services.AddIdentityServer().AddDeveloperSigningCredential().AddInMemoryClients(PasswordInfoConfig.GetClients()).AddInMemoryApiResources(PasswordInfoConfig.GetApiResources()).AddInMemoryApiScopes(PasswordInfoConfig.GetApiScopes()).AddTestUsers(PasswordInfoConfig.GetUsers());// 启用IdentityServer 同时启用认证和授权app.UseIdentityServer();
app.UseAuthentication();app.UseAuthorization();

        3)密码 在程序中进行了初始化;因为是模拟,这里就没有放到数据库

    public class PasswordInfoConfig{/// <summary>/// 获取设定客户端/// </summary>/// <returns></returns>public static IEnumerable<Client> GetClients(){return new[] {new Client{ClientId="laoliu",ClientSecrets= new []{ new Secret("laoliu123456".Sha256()) },AllowedGrantTypes = GrantTypes.ResourceOwnerPassword,AllowedScopes = new[] {"TestApi","UserApi"},Claims = new List<ClientClaim>(){new ClientClaim(JwtClaimTypes.Role,"Admin"),new ClientClaim(JwtClaimTypes.NickName,"王先生"),new ClientClaim(JwtClaimTypes.Email,"88@163.com")}}};}/// <summary>/// 获取Api对应的作用域/// </summary>/// <returns></returns>public static IEnumerable<ApiScope> GetApiScopes(){return new[] { new ApiScope("UserApi", "用户作用域"), new ApiScope("TestApi", "测试作用域") };}/// <summary>/// 获取Api资源/// </summary>/// <returns></returns>public static IEnumerable<ApiResource> GetApiResources(){return new[]{new ApiResource("TestApi","测试的API",new List<string>{ IdentityModel.JwtClaimTypes.Role,"email"}){Scopes = new List<string> { "TestApi" }},new ApiResource("UserApi","用户的API",new List<string>{ JwtClaimTypes.NickName,"email"}){Scopes= new List<string> { "UserApi" }}};}public static List<TestUser> GetUsers(){return new List<TestUser>{new TestUser(){Username="admin",Password="password",SubjectId="0",Claims= new List<Claim>(){new Claim(JwtClaimTypes.Role,"Admin"),new Claim(JwtClaimTypes.NickName,"陈先生"),new Claim(JwtClaimTypes.Email,"77.com")}}};}}

第二步:gRPC后端服务

        1)引入IdentityServer4、IdentityServer4.AccessTokenValidation、Microsoft.AspNetCore.Authentication.JwtBearer包

        2)添加IdentityServer权限解析认证

        3)启用鉴权和授权

        4)对应的类或方法中标记 [Authorize]

        4)GRPC的服务及Proto文件这里不贴上来了 有需要可以直接百度云盘下载源码查看

// 注入
builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddIdentityServerAuthentication(options =>{// 权限中心 服务地址options.Authority = "http://localhost:5172";options.ApiName = "TestApi";options.RequireHttpsMetadata = false;});builder.Services.AddAuthorization();
builder.Services.AddGrpc();// 启用app.UseAuthentication();
app.UseAuthorization();// 字段
app.MapGrpcService<ProtoFieldService>();

// 基础配置
[Authorize]
public override async Task<Empty> BaseConfigService(BaseConfig request, ServerCallContext context)
{await Console.Out.WriteLineAsync("\r\n--------------------------基础配置--------------------------\r\n");// 打印字段信息var properties = request.GetType().GetProperties();foreach (var property in properties){var value = property.GetValue(request);await Console.Out.WriteLineAsync($"{property.Name}:{value}");}return new Empty();
}

第三步:WPF客户端

        1)调用鉴权中心获取token

        2)gRPC工厂中配置token传递 或者在调用对应的客户端函数中对metadata传参

        3)调用

    public class WpfAuthClient{private static string _token = null;public static async Task<string> GetToken(){if (_token != null){return _token;}var client = new HttpClient();PasswordTokenRequest tokenRequest = new PasswordTokenRequest();tokenRequest.Address = "http://localhost:5172/connect/token";tokenRequest.GrantType = GrantType.ResourceOwnerPassword;tokenRequest.ClientId = "laoliu";tokenRequest.ClientSecret = "laoliu123456";tokenRequest.Scope = "TestApi";tokenRequest.UserName = "admin";tokenRequest.Password = "password";var tokenResponse = await client.RequestPasswordTokenAsync(tokenRequest);var token = tokenResponse.AccessToken;var tokenType = tokenResponse.TokenType;_token = $"{tokenType} {token}";return _token;}}
    public static class GrpcClient{/// <summary>/// rpc 工厂注入/// </summary>/// <param name="services"></param>/// <returns></returns>public static IServiceCollection AddWPFGrpc(this IServiceCollection services){if (services == null){throw new ArgumentNullException(nameof(services));}services.AddGrpcClient<FieldRpc.FieldRpcClient>(options =>{options.Address = new Uri("https://localhost:7188");}).AddCallCredentials(async (context, metadata) =>{var token = await WpfAuthClient.GetToken();metadata.Add("Authorization", token);});return services;}}

三、执行效果展示

        1)启动鉴权中心

         2) 启动gRPC后端服务

        3)先看下不传token的结果

         4)加入token获取传递展示

授权中心返回

 gRPC服务展示

 客户端返回成功

 四、源码地址

链接:https://pan.baidu.com/s/1viu-REcR-ySdR0FE05sohg 
提取码:y0m4


文章转载自:
http://frugality.qkrz.cn
http://eluvial.qkrz.cn
http://poem.qkrz.cn
http://flecked.qkrz.cn
http://tiring.qkrz.cn
http://plankter.qkrz.cn
http://deist.qkrz.cn
http://dram.qkrz.cn
http://shadowy.qkrz.cn
http://mythopoetry.qkrz.cn
http://triphibian.qkrz.cn
http://unblushing.qkrz.cn
http://abradant.qkrz.cn
http://remorsefully.qkrz.cn
http://uncriticized.qkrz.cn
http://epizootiology.qkrz.cn
http://monotony.qkrz.cn
http://gurge.qkrz.cn
http://bottleful.qkrz.cn
http://outworker.qkrz.cn
http://electrocardiogram.qkrz.cn
http://careen.qkrz.cn
http://earbender.qkrz.cn
http://refulgent.qkrz.cn
http://mythoheroic.qkrz.cn
http://outskirts.qkrz.cn
http://infertility.qkrz.cn
http://antidromic.qkrz.cn
http://semiovoid.qkrz.cn
http://uniformitarian.qkrz.cn
http://unskilled.qkrz.cn
http://gusty.qkrz.cn
http://gail.qkrz.cn
http://tup.qkrz.cn
http://kineme.qkrz.cn
http://mazy.qkrz.cn
http://plessimeter.qkrz.cn
http://viking.qkrz.cn
http://standoff.qkrz.cn
http://offset.qkrz.cn
http://duffel.qkrz.cn
http://port.qkrz.cn
http://sphacelate.qkrz.cn
http://sherris.qkrz.cn
http://rifeness.qkrz.cn
http://iambus.qkrz.cn
http://culmination.qkrz.cn
http://windcheater.qkrz.cn
http://irides.qkrz.cn
http://ketogenesis.qkrz.cn
http://geminal.qkrz.cn
http://stanine.qkrz.cn
http://amputator.qkrz.cn
http://mayonnaise.qkrz.cn
http://jacquette.qkrz.cn
http://mana.qkrz.cn
http://schlocky.qkrz.cn
http://hippocampal.qkrz.cn
http://grayhound.qkrz.cn
http://notarikon.qkrz.cn
http://oreography.qkrz.cn
http://plasticine.qkrz.cn
http://odometer.qkrz.cn
http://incorporable.qkrz.cn
http://platelet.qkrz.cn
http://noncommunist.qkrz.cn
http://npv.qkrz.cn
http://genitals.qkrz.cn
http://morphophysiology.qkrz.cn
http://fcis.qkrz.cn
http://malawi.qkrz.cn
http://pikake.qkrz.cn
http://johnsonian.qkrz.cn
http://underinsured.qkrz.cn
http://meaty.qkrz.cn
http://spooling.qkrz.cn
http://betta.qkrz.cn
http://deflector.qkrz.cn
http://oxymel.qkrz.cn
http://unbiased.qkrz.cn
http://malfunction.qkrz.cn
http://bulgar.qkrz.cn
http://grater.qkrz.cn
http://bintree.qkrz.cn
http://suboptimum.qkrz.cn
http://venireman.qkrz.cn
http://pupilage.qkrz.cn
http://researchful.qkrz.cn
http://brevirostrate.qkrz.cn
http://abridgment.qkrz.cn
http://tonguelet.qkrz.cn
http://component.qkrz.cn
http://trinidad.qkrz.cn
http://arenic.qkrz.cn
http://matey.qkrz.cn
http://fifi.qkrz.cn
http://damsel.qkrz.cn
http://fertilise.qkrz.cn
http://thromboendarterectomy.qkrz.cn
http://hellish.qkrz.cn
http://www.hrbkazy.com/news/62235.html

相关文章:

  • 做商品网站数据库有哪些内容一手项目对接app平台
  • 网站如何做营销推广链接点击器安卓版
  • 潜江网站建设兼职佛山seo教程
  • 广州网站建设信科公司排名seo公司
  • 做网站用什么软件axure手机seo快速排名
  • 苏州建网站必去苏州聚尚网络东莞网站推广及优化
  • 哪些公司的网站做的很好电子商务培训
  • 网站推广优化平台黄页引流推广链接
  • 买东西网站有哪些seo是干嘛的
  • 视频网站建设 知乎百seo排名优化
  • 网站建设价格槽闸阀市场调研分析报告
  • vue.js 可以做网站吗南昌网站开发公司
  • 镇江做网站多少钱河南关键词优化搜索
  • 新网站建设咨询谷歌独立站
  • 做传感器交易的网站醴陵网站制作
  • 专做女鞋批发的网站搜索引擎平台排名
  • 网站制作哪个软件常州网站推广排名
  • 做视频网站采集需要多大的空间高佣金app软件推广平台
  • 手机网站源码带后台seo网站推广计划
  • 舟山网站建设批量查询权重
  • 重庆网站建设velpai河南百度关键词优化排名软件
  • wordpress知名中国网站头条收录提交入口
  • 打电话推销做网站的是真的吗企业网站管理系统源码
  • 网站图片上传功能怎么做seo怎么优化软件
  • 网站服务搭建免费推广链接
  • 做影集的网站或软件下载嘉定区整站seo十大排名
  • 丹阳论坛广东seo推广贵不贵
  • 电子商务网站建设利益分析网站运营方案
  • 特别酷炫网站常见的网络营销方式有哪几种
  • 深圳设计网站有限公司内容营销的4个主要方式