ASP.NET MVC

Asp.net Core认证和授权:Cookie认证

£可爱£侵袭症+ 提交于 2020-08-13 04:00:17
原文: Asp.net Core认证和授权:Cookie认证 这里我只是记录下自己在学习中的点滴和一些不懂的地方 Cookie一般是用户网站授权,当用户访问需要授权(authorization)的页面,程序会判断是否已经授权,并认证 添加认证代码: 引入命名空间:Microsoft.AspNetCore.Authentication.Cookies; 添加服务 public void ConfigureServices ( IServiceCollection services ) { services . AddMvc (). SetCompatibilityVersion ( CompatibilityVersion . Version_2_2 ); services . AddAuthentication ( CookieAuthenticationDefaults . AuthenticationScheme ) . AddCookie (); } 注册中间件,添加到管道 app.UseAuthentication(); 注意:一定要在app.UseMvc之前添加 我们通过源码可以看到cookie的一些默认配置 // Copyright (c) .NET Foundation. All rights reserved. // Licensed under the

解决ASP.NET MVC AllowAnonymous属性无效导致无法匿名访问控制器的问题

最后都变了- 提交于 2020-08-11 18:11:27
原文: 解决ASP.NET MVC AllowAnonymous属性无效导致无法匿名访问控制器的问题 在ASP.NET MVC项目中,一般都要使用身份验证和权限控制,但总有部分网页是可以匿名访问的。使用AllowAnonymous属性就可以指定需要匿名访问的控制器,从而跳过身份验证。 但是今天却遇到一个AllowAnonymous属性失效的问题,导致声明了该属性控制器的操作方法无法匿名访问,需要登陆后才可访问。后经过排查,是由于配置文件属性设置的问题。 一般是这样声明这个属性的: [ AllowAnonymous ] public ActionResult Index ( ) { return View(); } 声明了允许匿名访问后,用户访问该控制器下的Index操作方法时,就无需进行身份验证了 (PS:匿名属性启用的前提是网站启用了form身份验证)。 但是如果有发现声明了该属性后,却无法访问属性设置下的Action操作方法,反而跳转到身份验证的登陆页面。这个时候可以按下面步骤排除问题: 首先检查下网站的应用程序文件 Global.asax是否有做过身份验证和跳转操作 ,要注意每个事件里所做的特殊处理 如果Global.asax没有做任何处理的话,那么接下来 检测控制器的构造函数是否有做过身份验证和跳转处理,控制器所继承的类是不是有做过相关处理。 最后就是检查Web

找不到路径的一部分... bin \\ roslyn \\ csc.exe

为君一笑 提交于 2020-08-11 15:01:17
问题: I am trying to run Asp.net MVC project retrieved from TFS source control. 我正在尝试运行从TFS源代码控制检索的Asp.net MVC项目。 I have added all assembly references and I am able to build and compile successfully without any error or warning. 我已经添加了所有程序集引用,并且能够成功构建和编译而没有任何错误或警告。 But I get the following error in the browser: 但是我在浏览器中收到以下错误: Could not find a part of the path 'C:\\B8akWorkspace\\B8akProject\\B8akSolution\\B8AK.Portal\\bin\\roslyn\\csc.exe'. 找不到路径“ C:\\ B8akWorkspace \\ B8akProject \\ B8akSolution \\ B8AK.Portal \\ bin \\ roslyn \\ csc.exe”的一部分。 Here is a full screenshot of the error page.

GRpc异常处理Filter

邮差的信 提交于 2020-08-11 14:39:05
全局错误处理服务端 微软已经实施了 Interceptors ,它们类似于 Filter 或 Middlewares 在ASP.NET MVC的核心或的WebAPI,它们可以用于全局异常处理,日志记录,验证等。 这是服务器端Interceptor自己的实现,Continuation是必须等待的Task,然后,如果引发了任何异常,则可以根据所获得的异常来控制 RpcException 和关联的 StatusCode using Grpc.Core; using Grpc.Core.Interceptors; using Microsoft.Extensions.Logging; using System; using System.Data.SqlClient; using System.Threading.Tasks; namespace DemoGrpc.Web.Logging { public class LoggerInterceptor : Interceptor { private readonly ILogger<LoggerInterceptor> _logger; public LoggerInterceptor(ILogger<LoggerInterceptor> logger) { _logger = logger; } public async

ASP.NET Core MVC四种枚举绑定方式

我们两清 提交于 2020-08-11 12:32:22
前言 本节我们来讲讲在ASP.NET Core MVC又为我们提供了哪些方便,之前我们探讨过在ASP.NET MVC中下拉框绑定方式,这节我们来再来重点看看枚举绑定的方式,充分实现你所能想到的场景,满满的干货,你值得拥有。 探讨枚举绑定方式 我们首先给出要绑定的枚举类。 public enum Language { JavaScript, Java, C, Python, SQL, Oracle } 枚举绑定方式一(@Html.DropDownList) 接下来我们废话少说直接进入主题。 ViewBag.enums = Enum.GetValues( typeof (Language)).Cast<Language>(); 视图页面则是得到该ViewBag中的值。 @Html.DropDownList( " enumList " , new SelectList(ViewBag.enums), new { @class = " btn btn-success dropdown-toggle form-control " }) 绑定方式二(@Html.EnumDropDownListFor) 此时我们需要借助强类型视图来操作,如下控制器代码 [HttpGet] public IActionResult Get() { var test = new TestViewModel();

ASP.NET MVC + EF 利用存储过程读取大数据,1亿数据测试很OK

大兔子大兔子 提交于 2020-08-11 01:53:37
看到本文的标题,相信你会忍不住进来看看! 没错,本文要讲的就是这个重量级的东西,这个不仅仅支持单表查询,更能支持连接查询, 加入一个表10W数据,另一个表也是10万数据,当你用linq建立一个连接查询然后利用take,skip读取第N页数据的时候, 你的程序就挂了,因为,你很可能读取需要几十秒甚至几分钟以上。 下面来讲解一下,ASP.NET MVC + EF 利用存储过程读取大数据的详细过程。 1.首先,我们创建一个实体类PageinationInfo,主要用于分页,如下 1 public class PageinationInfo 2 { 3 /// <summary> 4 /// 要显示的表或多个表的连接 5 /// </summary> 6 public string strTable { get ; set ; } 7 8 /// <summary> 9 /// 要查询的字段 10 /// </summary> 11 public string strField { get ; set ; } 12 13 /// <summary> 14 /// 每页多少条记录 15 /// </summary> 16 public int pageSize { get ; set ; } 17 18 /// <summary> 19 /// 当前页 20 /// </summary>

第5、6课 MessageHandler:简化消息处理流程

删除回忆录丶 提交于 2020-08-10 13:36:15
文章说明:    本文是基于盛派网络苏震巍老师的《微信公众号+小程序快速开发》课程笔记。 课程地址:    https://study.163.com/course/courseMain.htm?courseId=1004873017 本课项目地址:    https://github.com/wechatdeveloper/WechatVideoCourse 课程目标 :   从0开始新建Asp.Net MVC Web项目引入Senparc.Weixin SDK,并把Web项目发布到应用服务器实现和微信公众号服务器的通讯接口对接,实现对用户不同消息(文本、图片、地理位置等)的处理以及根据需求返回不同的消息(文本、图片、图片消息等)。 课程准备 : ①域名(需要备案) ②基础版云服务器一台 课程主题 : 消息通讯的过程,如下图 课程代码参考: 1,Sample项目 https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Samples/net45-mvc 2,视频课程对应的项目WechatVideoCourse: https://github.com/JeffreySu/WechatVideoCourse 由于在视频录制之后,SDK有了很多个版本的更新迭代,部分接口和实现方法有更新; 所以我也新建立了课程对应的项目

《ASP.NET Core 开发实战》

百般思念 提交于 2020-08-10 10:01:11
**《ASP.NET Core 开发实战》 ========== ========== ========== [作者] (意) Dino Esposito [译者] (中) 赵利通 [出版] 清华大学出版社 [版次] 2019年07月 第1版 [印次] 2019年12月 第2次 印刷 [定价] 79.80元 ========== ========== ========== 【前言】 (PVI) ASP.NET Core 是 ASP.NET 开发人员需要了解的一种技术,是在多种平台上进行 Web 开发时可供使用的另一种全栈解决方案。 【第01章】 (P006) 对于处理必须返回 HTML 内容的 Web 请求, ASP.NET MVC 编程模型是最灵活、最容易理解的方式。 (P008) .NET Core Framework 主要被设计为用于 ASP.NET 应用程序。 .NET Core Framework 只能用来编写 ASP.NET 和控制台应用程序。 .NET Core Framework 可与应用程序一同部署,而完整的 .NET Framework 只能安装到目标机器上,由所有应用程序共享。 (P009) .NET Core Framework 是从头开始重新设计的一个新框架,看上去与完整的 .NET Framework 很类似,但是能够跨平台工作。 (P010) ASP

《全栈工程师 Web 开发指南》

二次信任 提交于 2020-08-09 21:21:41
《全栈工程师 Web 开发指南》 ========== ========== ========== [作者] (意) Dino Esposito [译者] (中) 李永伦 [出版] 人民邮电出版社 [版次] 2019年03月 第1版 [印次] 2019年03月 第1次 印刷 [定价] 79.00元 ========== ========== ========== 【第02章】 【选择支撑架构】 (P018) 领域模型模式的要点是构建一个完全体现业务领域的行为和流程的面向对象模型。 DDD 愿景中的全部持久化问题都委托给领域服务,尤其是仓库。 (P020) 对于领域模型而言,值类型的角色比很多人想象的重要得多。值类型是更精确地建模真实世界的工具。 【第03章】 【用户体验驱动设计】 (P038) 好的 UI 不一定是好的 UX 。好的 UX 可能是有效的,但可能没那么美观。 (P044) 不管物理层、逻辑层、框架、数据库和技术是什么,对于最终用户而言,软件系统唯一重要的是用户界面,确切地说,是这个应用程序的用户体验和感知速度。 【第04章】 【Web 解决方案的架构选项】 (P053) ASP.NET Core 1.0 最复杂的部分是选择要使用的 .NET CLR 。 DNX 运行时环境 (新的 ASP.NET 运行时) 是一个托管进程,其职责之一就是加载 CLR 。 (P054)

.NET Web应用中为什么要使用async/await异步编程

邮差的信 提交于 2020-08-09 11:14:15
前言 什么是async/await? await和async是.NET Framework4.5框架、C#5.0语法里面出现的技术,目的是用于简化异步编程模型。 async和await的关系? async和await是成对出现的。 async出现在方法的声明里,用于批注一个异步方法。光有async是没有意义的。 await出现在方法内部,Task前面。只能在使用async关键字批注的方法中使用await关键字。 private async Task DoSomething() { await Task.Delay(TimeSpan.FromSeconds(10)); } async/await会创建新的线程吗? 不会。async/await关键字本身是不会创建新的线程的,但是被await的方法内部一般会创建新的线程。 asp.net mvc/webapi action中使用async/await会提高请求的响应速度吗? 不会。 正题 我们都知道web应用不同于winform、wpf等客户端应用,客户端应用为了保证UI渲染的一致性往往都是采用单线程模式,这个UI线程称为主线程,如果在主线程做耗时操作就会导致程序界面假死,所以客户端开发中使用多线程异步编程非常必要。 可web应用本身就是多线程模式,服务器会为每个请求分配工作线程。 既然async/await不能创建新线程