asp

写自己的ASP.NET MVC框架(下)

耗尽温柔 提交于 2020-02-03 03:22:14
上篇博客 【写自己的ASP.NET MVC框架(上)】 我给大家介绍我的MVC框架对于Ajax的支持与实现原理。今天的博客将介绍我的MVC框架对UI部分的支持。 注意: 由于这篇博客是基于前篇博客的,因此有些已说过的内容将会直接跳过,也不会给出提示。 所以,如果要想理解这篇博客,那么阅读上篇博客 【写自己的ASP.NET MVC框架(上)】 则是必要的。 MyMVC的特点 在开发MyMVC的过程中,我吸取了一些ASP.NET WebForm的使用经验,也参考了ASP.NET MVC,也接受了Martin Fowler对于MVC思想的总结。 在设计过程中,我只实现了一些必要的功能,而且没有引入其它的类库与组件,因此,它非常简单,且容易使用。 我们可以这样理解MyMVC: 它是一个简单,容易使用,且符合MVC思想的框架。 在MyMVC框架中,View仍然采用了WebForm中的Page,毕竟Page已经使用了十年,能经得起时间的检验,它仍然是我们可信赖的技术。 另一方面,Page也是ASP.NET中默认的HTML输出技术,使用它会比较方便。 MyMVC与微软的ASP.NET MVC不同的是: 1. 不依赖于URL路由组件。 2. 不提供任何HtmlHelper 3. Controller只是一个Action的容器,没有基类的要求。 4. Action处理的请求不区分POST, GET

ASP.NET Core WebAPI学习-2

本秂侑毒 提交于 2020-02-02 01:48:17
目录: ASP.NET Core WebAPI学习-1 ASP.NET Core WebAPI学习-2 ASP.NET Core WebAPI学习-3 ASP.NET Core WebAPI学习-4 ASP.NET Core WebAPI学习-5 ASP.NET Core WebAPI学习-6 使用Controller ApiController特性的作用: ApiController是应用在Controller类,会启用以下行为: 要求使用特性路由(Attribute Routing) 自动HTTP 400响应 推断参数的绑定源 Mulitpart/form-data请求推断 错误状态代码的问题详细信息 CompanyController 继承自ControllerBase 使用[ApiController]特性 配置路由 [Route(template: "api/companies")] [ApiController] public class CompaniesController : ControllerBase { private readonly ICompanyRepository companyRepository; private readonly IMapper mapper; //配置依赖注入 public CompaniesController

ASP.NET Core搭建多层网站架构【12-WebApi统一处理返回值、异常】

巧了我就是萌 提交于 2020-02-01 03:57:00
2020/01/31, ASP.NET Core 3.1, VS2019, Microsoft.AspNetCore.Authentication.JwtBearer 3.1.1 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【11-使用JWT进行授权验证】 使用JWT给网站做授权验证 文章目录 此分支项目代码 本章节介绍了使用JWT给网站做授权验证 来源: https://www.cnblogs.com/kasnti/p/12247468.html

SQL注入攻击

随声附和 提交于 2020-02-01 03:50:28
SQL注入攻击即是对数据库进行攻击,主要原因是程序员在编写代码时没有对用户输入数据的合法性进行判断,是程序存在安全隐患。用户提交一段数据库查询代码,根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的 防火墙 都不会对SQL注入发出警报,如果管理员没查看 IIS 日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。 SQL注入攻击的整体思路 ·发现SQL注入位置; ·判断后台数据库类型; ·确定XP_CMDSHELL可执行情况 ·发现WEB虚拟目录; ·上传 ASP木马 ; ·得到管理员权限; SQL注入的操作步骤 一:SQL注入漏洞的判断 SQL注入一般存在于形如:HTTP://xxx.xxx.xxx/abc.asp?id=XX等带有参数的ASP动态网页中,有时一个动态网页中可能只有一个参数,有时可能有N个参数,有时是整型参数,有时是字符串型参数,不能一概而论。总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入。如果ASP程序员没有安全意识,不进行必要的字符过滤,存在SQL注入的可能性就非常大。

如何使用Serilog.AspNetCore记录ASP.NET Core3.0的MVC属性

人走茶凉 提交于 2020-01-30 22:14:19
这是Serilog系列的第三篇文章。 第1部分-使用Serilog RequestLogging减少日志详细程度 第2部分-使用Serilog记录所选的终结点属性 第3部分-使用Serilog.AspNetCore记录MVC属性(本文) 第4部分-从Serilog请求记录中排除运行状况检查端点 作者:依乐祝 译文地址: https://www.cnblogs.com/yilezhu/p/12243984.html 原文地址: https://andrewlock.net/using-serilog-aspnetcore-in-asp-net-core-3-logging-mvc-propertis-with-serilog/ 在我 上篇文章 中,我描述了如何配置Serilog的RequestLogging中间件以向Serilog的请求日志摘要中添加其他属性(例如请求主机名或选定的端点名称)。这些属性都在 HttpContext 中可用,因此可以由中间件本身直接添加。 其他属性,例如MVC特定的功能,像操作方法ID,RazorPages处理程序名称或ModelValidationState, 仅 在MVC上下文中可用,因此Serilog的中间件不能直接访问。 在本文中,我将展示如何创建 action/page 过滤器来为您记录这些属性,以便中间件可以在后续创建日志时访问。

ASP.NET 多个提交按钮页面,ENTER指定执行某一按钮

こ雲淡風輕ζ 提交于 2020-01-30 04:35:30
在WEB页面上,通常SUBMIT类型的按钮会被默认指派为所在FORM表单的提交按钮 我们在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件。 在ASP.NET中,只能指定一个带有RUNAT=SERVER的FORM表单,因此,这个表单会指派哪个按钮为默认提交按钮呢? 不做任何处理的情况下是很难控制的,例如在同一个页面里做了N个搜索框,设计上理想的思路是在某一输入框输入关键字后,用户按ENTER键,执行当前输入的输入框对应的提交按钮,但是,实际上往往事与愿违。无论怎么提交,总是会只执行某一个按钮事件。 网上很多方法都是使用JAVASCRIPT来进行判断,在输入框中加入KEYPRESS之类的事件,然后检查eventCode,如果是回车键,那么就指定执行某一个按钮。 这个方法不是不行,但是,并不好维护,而且在处理复杂的逻辑时,往往不好控制。 其实,ASP.NET给出了很好的解决方案,只是通常不被人注意。 首先,屏蔽浏览器提交模式,也就是说,FORM不再默认指定一个ENTER提交的按钮 方法是将BUTTON的UseSubmitBehavior设置为false,这样这个按钮就不会接受回车提交,这样就不会出现用户焦点在页面某处聚焦时按回车提交的情况。 为什么会这样呢?查看页面源文件我们会发现本来ASP

ASP.NET 多个提交按钮页面,ENTER指定执行某一按钮

五迷三道 提交于 2020-01-30 04:35:10
ASP.NET 多个提交按钮页面,ENTER指定执行某一按钮 2011-06-16 17:35 在WEB页面上,通常SUBMIT类型的按钮会被默认指派为所在FORM表单的提交按钮 我们在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件。 在ASP.NET中,只能指定一个带有RUNAT=SERVER的FORM表单,因此,这个表单会指派哪个按钮为默认提交按钮呢? 不做任何处理的情况下是很难控制的,例如在同一个页面里做了N个搜索框,设计上理想的思路是在某一输入框输入关键字后,用户按ENTER键,执行当前输入的输入框对应的提交按钮,但是,实际上往往事与愿违。无论怎么提交,总是会只执行某一个按钮事件。 网上很多方法都是使用JAVASCRIPT来进行判断,在输入框中加入KEYPRESS之类的事件,然后检查eventCode,如果是回车键,那么就指定执行某一个按钮。 这个方法不是不行,但是,并不好维护,而且在处理复杂的逻辑时,往往不好控制。 其实,ASP.NET给出了很好的解决方案,只是通常不被人注意。 首先,屏蔽浏览器提交模式,也就是说,FORM不再默认指定一个ENTER提交的按钮 方法是将BUTTON的UseSubmitBehavior设置为false,这样这个按钮就不会接受回车提交

ASP.NET 多个提交按钮页面,ENTER指定执行某一按钮

心已入冬 提交于 2020-01-30 04:34:35
在WEB页面上,通常SUBMIT类型的按钮会被默认指派为所在FORM表单的提交按钮 我们在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件。 在ASP.NET中,只能指定一个带有RUNAT=SERVER的FORM表单,因此,这个表单会指派哪个按钮为默认提交按钮呢? 不做任何处理的情况下是很难控制的,例如在同一个页面里做了N个搜索框,设计上理想的思路是在某一输入框输入关键字后,用户按ENTER键,执行当前输入的输入框对应的提交按钮,但是,实际上往往事与愿违。无论怎么提交,总是会只执行某一个按钮事件。 网上很多方法都是使用JAVASCRIPT来进行判断,在输入框中加入KEYPRESS之类的事件,然后检查eventCode,如果是回车键,那么就指定执行某一个按钮。 这个方法不是不行,但是,并不好维护,而且在处理复杂的逻辑时,往往不好控制。 其实,ASP.NET给出了很好的解决方案,只是通常不被人注意。 首先,屏蔽浏览器提交模式,也就是说,FORM不再默认指定一个ENTER提交的按钮 方法是将BUTTON的UseSubmitBehavior设置为false,这样这个按钮就不会接受回车提交,这样就不会出现用户焦点在页面某处聚焦时按回车提交的情况。 为什么会这样呢?查看页面源文件我们会发现本来ASP

ASP.NET Core搭建多层网站架构【8-使用AOP动态拦截器进行服务层日志记录】

给你一囗甜甜゛ 提交于 2020-01-30 02:06:16
2020/01/29, ASP.NET Core 3.1, VS2019 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构【7-编写角色业务的增删改查】 编写最简单的增删改业务,涉及到DI依赖注入的使用、AutoMapper的使用、工作单元与仓储的使用、雪花Id的生成 文章目录 此分支项目代码 本章节介绍了编写最简单的增删改查业务,涉及到DI依赖注入的使用、AutoMapper的使用、工作单元与仓储的使用 来源: https://www.cnblogs.com/kasnti/p/12241973.html

Asp.Net Core 发布到IIS

我是研究僧i 提交于 2020-01-29 20:27:54
一、Asp.Net Core 发布到IIS 1.许多时候在WindowsServer服务器上已经安装了IIS,监听80端口,那么Asp.Net Core应用的自宿主就没法监听80端口 2.也就是在Widnows系统已经启用IIS服务的情况下,需要安装 NET Core Windows Server Hosting,在目前官方给出的安装包中包含了.Net Core运行时 和Widnows Server Hosting 3.Asp.Net Core发布到IIS下,需要.NET Core Windows Server Hosting 的支持。 官方下载地址: https://www.microsoft.com/net/download/core#/runtime 在服务器上安装.NET Core Windows Server Hosting软件包。该包将安装.NET核心运行时,.NET核心库和ASP.NET核心模块。 该模块在IIS和Kestrel服务器之间创建反向代理。 重新启动服务器或执行net stop was / y,然后从命令行启动net start w3svc,以检索对系统PATH的更改。 安装截图: 二、IIS下发布 Asp.Net Core应用步骤 1.安装IIS和Windows Server Hosing之后 ,重启IIS服务,检查IIS模块中是否有