我们最常用的认证系统是Cookie认证,通常用一般需要人工登录的系统,用户访问授权范围的url时,会自动Redirect到Account/Login,登录后把认证结果存在cookie里. 系统只要找到这个cookie就认为这个web用户是已经登录的了. 通常的代码段是这样的,StartUp.cs services.AddAuthentication(options => { options.DefaultAuthenticateScheme = CookieAuthenticationDefau…
安装Microsoft.Extensions.Caching.Redis.Core NuGet中搜索Microsoft.Extensions.Caching.Redis.Core并安装,此NuGet包是对Caching的拓展,即可以更换Caching存储介质 appsettings.json配置Redis连接字符串 appsettings.json配置Redis连接字符串(相当于web.config里面配置appsetting节点),注意:添加位置要在Logging上面 { "Connectio…
因为自己到开发电脑转到Mac Air,之前的Webform/MVC应用在Mac 跑不起来,而且.Net Core 2.0 已经比较稳定了. 1. 为什么会有跨平台的.Net Core  近年来,我们已经进入云计算时代,在云平台的PaSS和SaSS上也是发生了大幅度的进化,以docker为代表.微软的Azure平台,google的GAE等等各大云计算厂商都提供了PaSS平台,我们的应用程序要迁移到这样的平台上都需要进行重写.Docker,给云计算带来一场革新,Docker可以被认为是互联网的集装箱…
1. 开发时是在Mac+MySql, 尝试发布时是在SQL2005+Win 2008 (第一版) 在Startup.cs里,数据库连接要改,分页时netcore默认是用offset关键字分页, 如果用SQL2012之前的版本,就要改 //-----Use SqlServer, 默认用offset分页(这个是sql2012版本之后才有的功能) services.AddDbContextPool<CRMContext>( tt => tt.UseSqlServer(Configuration…
在EF Core 2.0版本中出现了全局过滤新特性即HasQueryFilter,它出现的意义在哪里?能够解决什么问题呢? 通过HasQueryFilter方法来创建过滤器能够允许我们对访问特定数据库表的所有查询额外添加一模一样的过滤器. 它主要用于多租户和 软删除(soft-delete)场景,即用户并不想返回那些被标记为已删除但是尚未从数据库中做物理删除的数据行 builder.Entity<T>().HasQueryFilter(e => e.TenantId == _tenant…
EF Core 现在不支持多对多映射,只能做2个一对多映射. 比如Product和Category 我现在定义Product和Category是多对多关系. 那么实体定义如下: public class Product { [Key] public int ProdId{ get; set; } public String ProdCode{ get; set; } public String ProdName{ get; set; } public IList<CategoryProduct>…
迁移也没太大变化,有一个, 之前的Request.QueryString 是返回NameValueCollection, 现在则是返回整个字符串. 你要改成Request.Query[“key”] 直接上代码吧. @using FoxCRMCore @{ var controller = "CRM/Announcement"; ViewBag.Title = "公告信息"; } <script type="text/javascript"…
net core 的layout.cshtml文件有变化, 区分开发环境和非开发环境. 开发环境用的是非压缩的js和css, 正式环境用压缩的js和css <environment include="Development"> <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" /> <link rel="styleshe…
因为Mac 不能装SqlServer, 所以把数据库迁移到MySql,然后EntityFramework要改成Pomelo.EntityFrameworkCore.MySql 数据库迁移时,nvarchar 要改成varchar,编码选utf-8 在Startup.cs里 public void ConfigureServices(IServiceCollection services) { //Use MySql----------------------- string connString…
关于DI 依赖注入, 转载这篇文章, 写得很好的. ----------------------------- DI在.NET Core里面被提到了一个非常重要的位置, 这篇文章主要再给大家普及一下关于依赖注入的概念,身边有工作六七年的同事还个东西搞不清楚.另外再介绍一下.NET  Core的DI实现以及对实例生命周期的管理(这个是经常面试会问到的问题).最后再给大家简单介绍一下在控制台以及Mvc下如何使用DI,以及如何把默认的Service Container 替换成Autofac. 一.什么…
Net Core 大量使用依赖注入(Dependency Inject), 打个比方,我们常用的日志组件有Log4Net,NLog等等. 如果我们要随时替换日志组件,那么代码中就不能直接引用某个组件的内容,也不能直接New 某个组件. 而是应该定义一组接口, 然后包装各个组件,实现这个接口. Net Core 自带组件容器, 启动程序时,指定接口对应的实现. 然后在各个Controller 里, 通过构造函数的参数,把要带过去的接口,把容器里的对象自动传过去 在cshtml view页面,要使用…
要查看页面耗时,EFCore的性能. 安装 MiniProfiler.AspNetCore.Mvc 还有  MiniProfiler.EntityFrameworkCore Install-Package MiniProfiler.AspNetCore.Mvc 编辑Startup.cs public void ConfigureServices(IServiceCollection services) { //EFCore性能监控 services.AddMiniProfiler().AddEn…
之前用JEasyUI,它的datagrid比较强大,但region的布局界面就太简陋了. 把布局界面改成adminLTE 左边菜单要做成动态,从xml文件加载, 可以参考NOPCommerce的源码来改动.…
IE浏览器的Intranet局域网设置默认是可以跨域访问的.chrome就不可以. 这里说的跨域是指javascript代码不能跨域, 当然你在后端controller代码里用HttpClient.GetAsync(url) 这样去请求数据是不存在跨域问题的. 1. 在Startup.cs的ConfigureServices方法 public void ConfigureServices(IServiceCollection services) { string[] origins = Conf…
参考这篇文章: http://www.cnblogs.com/yuangang/p/6000460.html using System; using System.IO; using System.DrawingCore; using System.DrawingCore.Imaging; namespace MobileWeb.Utility { public class Captcha { public string CreateValidateNumber(int length) { in…
实现最简单的认证,类似之前的FormAuthentication 在 Startup 的 ConfigureServices() 方法中添加 Authentication 的配置: 这个CookieAuthenticationDefaults类默认的登录地址是/Account/Login,如果要要修改 则可以在后面的AddCookie()方法里修改路径 services.AddAuthentication(options => { options.DefaultAuthenticateSchem…
想着用T4 Template 自动生成代码,省了功夫. 发现T4 Template 挺笨的. 我开始这样写是会报错的  <#  var modualName = "CRM" #> 要写成分行的 <#   var modualName = "CRM"; #> 然后使用时, 要这样写 <#=modualName #>, =和#之间不能有空格. 我只能说这个解析器够烂的. 更改了一下代码规范性,以前我字段有ID的字母,都是大写,显得醒目…
Tag Helpers是Html Helpers的一种替换 比如,原来的视图模型定义是这样的: @using (Html.BeginForm("Register", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) { @Html.AntiForgeryToken() <h4>Create a new ac…
我想实现 http://localhost:5000/{moduleName}/{controller}/{action}/{id?} 这样的url. 有2个方法 方法1: 在路由里设置多个module app.UseMvc(routes => { routes.MapRoute( name: "CRM", template: "CRM/{controller=Home}/{action=Index}/{id?}", defaults:null, constr…
今年五月的 Build 大会上,微软说 .NET Core 3.0 将带来 WPF / Windows Forms 这些桌面应用的支持.当然,是通过 Windows 兼容包(Windows Compatibility Pack)实现的.为了提前检查你的程序是否能在未来跑在 .NET Core 3.0 上,微软在 2018年8月8日 推出了 .NET Core 3.0 Desktop API Analyzer,帮助你提前检查你的程序能有多容易迁移到 .NET Core 3.0 本文将介绍其使用方法…
本文转自 https://blog.csdn.net/WPwalter/article/details/82859449 使用 .NET Core 3.0 Desktop API Analyzer 分析现有 WPF / Windows Forms 程序能否顺利迁移到 .NET Core 3.0 ) .NET Core 3.0 Desktop API Analyzer 分析一个 WPF 程序 分析更复杂的程序 着手解决兼容性问题 一些错误 未来的迁移 分析现有 WPF / Windows Form…
原文:ASP.NET Core[源码分析篇] - Authentication认证 追本溯源,从使用开始 首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务,这里通过JWT的认证方式讲解 public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(authOpt => { authOpt.DefaultAuthenticateScheme…
之前在 Docker 中配置过 .Net Core 运行环境,地址:[IOT] - Raspberry Pi 4 Model B 系统初始化,Docker CE + .Net Core 开发环境配置 今天在树莓派的 Raspbian 系统中配置一下 .Net Core 运行环境. 硬件:Raspberry Pi 4 Model B系统:Raspbian Buster应用:.NET Core SDK 3.0.100-preview7-012821,.Net Core Runtime 3.0.0-p…
通过官方的介绍可知,若要本地开始部署搭建一个基于.net core 1.0的Web应用,需要下载dotnet SDK,或在Visual Studio IDE之上安装相关插件以布置开发环境.为了使开发环境最小化,选择安装dotnet SDK.下载地址为:http://asp.net 0x00.新建一个Web应用项目 这里不必赘述,到相应目录中运行命令提示符:dotnet new -t web.dotnet会非常人性化的携带自己的例程,如果基于微软提供的例程进行开发的话,会提速不少.但在实际应用中却…
JWT认证简单介绍     关于Jwt的介绍网上很多,此处不在赘述,我们主要看看jwt的结构.     JWT主要由三部分组成,如下: HEADER.PAYLOAD.SIGNATURE HEADER包含token的元数据,主要是加密算法,和签名的类型,如下面的信息,说明了 加密的对象类型是JWT,加密算法是HMAC SHA-256 {"alg":"HS256","typ":"JWT"}     然后需要通过BASE64编码后存…
Microsoft.Authentication的使用方法在2.0中发生了比较大的变化,在1.1中认证配置是在Configure中完成. public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(); } public void Configure(IApplicationBuilder app) { app.UseJwtBearerAuthentication(new JwtB…
public class ApplicationDbContext : IdentityDbContext<WebUser, WebRole, Guid, WebUserClaim, WebUserRole, WebUserLogin, WebRoleClaim, WebUserToken> { public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) {…
一.前言 .NET Core 3.0将会在 .NET Conf 大会上正式发布,截止今日发布了9个预览版,改动也是不少,由于没有持续关注,今天将前面开源的动态WebApi项目迁移到.NET Core 3.0还花了不少时间踩坑,给大家分享一下我在迁移过程中遇到的坑.迁移的版本是当前Release最新版本 .NET Core 2.2 到 .NET Core 3.0 Preview 9. 二.ASP.NET Core 项目迁移 官方迁移文档:从 ASP.NET Core 2.2 迁移到3.0 ,这个官…
.NET 6 发布后,我们现有的应用会逐步升级到这个版本,首当其冲的是原因的ASP.NET Core的工程,如果一步一步升级到ASP.NET Core 6.0 本文简单整理一下升级ASP.NET Core 6.0的一些常用代码示例. 一.中间件升级 原有添加静态文件中间件的代码: 升级ASP.NET Core 6.0的代码实现: var builder = WebApplication.CreateBuilder(args); var app = builder.Build(); app.Use…
据悉,这个预览版是 .Net Core 3 中重要的版本,可以视为原计划在 7 月发布的 RC 版本 (引自微软 .NET Core 首席 Program Manager Richard 先生原话),故可在生产环境进行开发和部署. Windows, macOS 和 Linux 版本的Download .NET Core 3.0 预览版 7 下载地址如下: .NET Core 3.0发布说明 API变化对比 GitHub release Report issues 与此同时,ASP.NET Cor…