百度这些东西,还是会浪费了一些不必要的时间,记录记录以备后续

一、开启伪静态

如果不在web.config中配置管道开关则伪静态无效

  1. 首先在RouteConfig.cs中中注册路由

    routes.MapRoute(

    name: "index",

    url: "index.html",

    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }

    );

  2. 在web.config中的system.webServer节点添加配置项

    <system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

二、使用Bundle压缩css,js

  1. 添加Nuget包Microsoft.AspNet.Web.Optimization

  2. 配置BundleConfig.cs文件

     public class BundleConfig
    {
    public static void RegisterBundles(BundleCollection bundles)
    {
    //若runAllManagedModulesForAllRequests未配置则不不能使用.css,.js等带后缀的静态资源名称,反之即可
    bundles.Add(new StyleBundle("~/Content/maincss").Include(
    "~/Content/assets/css/main.css",
    "~/Content/assets/css/md.css"
    ));
    bundles.Add(new ScriptBundle("~/Content/listjs").Include(
    "~/Content/assets/js/xss.js",
    "~/Content/assets/js/meMd.js",
    "~/Content/assets/js/marked.js",
    "~/Content/assets/js/dragscroll.js"
    ));
    //强制开启压缩,或者由system.web节点的compilation【debug】值控制(即debug模式下不压缩合并)
    //BundleTable.EnableOptimizations = true;
    }
    }
  3. 在Global.asax的Application_Start()中注册配置

    BundleConfig.RegisterBundles(BundleTable.Bundles);

  4. 需要注意的地方

    1. StyleBundle构造函数中的路径为虚拟路径,即不用关心目录是否存在
    2. 若web.config中配置了<modules runAllManagedModulesForAllRequests="true" />,则序StyleBundle传递的虚拟路径可以包含后缀名.css/.js
    3. Bundle压缩合并功能可由web.config中的system.web节点下<compilation debug="false" targetFramework="4.5" />的debug值控制,或者在RegisterBundles方法中强制启用:BundleTable.EnableOptimizations = true;

三、layui富文本编辑器中的文件上传接口

public class FileController : Controller
{
private static readonly string[] ImageFileExtensions = GetConfigValue("ImgExts").Split(',') ?? new string[] { ".jpg", ".jpeg", ".gif", ".png", ".bmp", ".ico" };
private static readonly string ImageDomain = GetConfigValue("ImgDomain");//末尾不带/
private static readonly string UploadDir = GetConfigValue("UploadDir", "/uploads/");//相对路径吧
private static readonly int UploadMaxLength = int.Parse(GetConfigValue("UploadMaxLength", "5242880"));//默认最大5M private static string GetConfigValue(string key, string def = "")
{
return System.Configuration.ConfigurationManager.AppSettings[key] ?? def;
}
[HttpPost]
public ActionResult Upload(HttpPostedFileBase file)
{ if (file == null)
{
return Json(new
{
code = -1,
msg = "未上传任何东西!"
});
}
if (file.ContentLength > UploadMaxLength)
{
return Json(new
{
code = -1,
msg = "文件大小不能超过5M!"
});
}
string ext = Path.GetExtension(file.FileName);
if (ImageFileExtensions.Any(e => e == ext))
{
return Json(new
{
code = -1,
msg = "不支持此文件格式"
});
}
string fileName = Guid.NewGuid().ToString() + ext;
string saveDir = System.Web.HttpContext.Current.Request.MapPath(UploadDir);
if (!Directory.Exists(saveDir))
{
Directory.CreateDirectory(saveDir);
}
string savePath = Path.Combine(saveDir, fileName);
file.SaveAs(savePath);
return Json(new
{
code = 0,
msg = "上传成功",
data = new
{
src = ImageDomain + UploadDir + fileName,
title = ""
}
});
} }

四、使用js-xss进行xss的防御

  1. 提交的内容会包含html,输出的时候又是用js追加的,不处理下简直要命。

  2. 保存xss.js到本地并在页面中引用

  3. 使用filterXss(html,options)调用函数处理,根据规则将规则内的html编码

        // 使用函数名 filterXSS,用法一样
    var html = filterXSS('<script>alert("xss");</script>');
    console.log(html);//"&lt;script&gt;alert("xss");&lt;/script&gt;"
  4. 实际使用

执行结果对比



js //定义自己的规则 var myXssOptions = function (isEditer) { return { onTagAttr: function (tag, name, value, isWhiteAttr) { //保留style标签 默认会将style给干掉 if (name == 'style') { return "style='" + value + "'"; } //替换src为lay-src做懒加载 if (!isEditer && tag == 'img' && name == 'src') { return "lay-src='" + value + "'"; } } } };

asp.net mvc项目实记-开启伪静态-Bundle压缩css,js的更多相关文章

  1. Asp.net Mvc模块化开发之“开启模块开发、调试的简单愉快之旅”

    整个世界林林种种,把所有的事情都划分为对立的两个面. 每个人都渴望的财富划分为富有和贫穷,身高被划分为高和矮,身材被划分为胖和瘦,等等. 我们总是感叹,有钱人的生活我不懂;有钱人又何尝能懂我们每天起早 ...

  2. 在已有的Asp.net MVC项目中引入Taurus.MVC

    Taurus.MVC是一个优秀的框架,如果要应用到已有的Asp.net MVC项目中,需要修改一下. 1.前提约定: 走Taurus.MVC必须指定后缀.如.api 2.原项目修改如下: web.co ...

  3. ASP.NET MVC项目实现BasePage基类用作ASPX.CS网页继承

    在ASP.NET MVC项目开发,还是需要创建一些Web Page来实现一些功能,如呈现报表等... 但是一旦项目的.ASPX网页太多了,其中的程序代码也会有代码冗余,出现这些情况,我们得需要对这些代 ...

  4. AngularJS2 + ASP.NET MVC项目

    环境:VS2015, NodeJS:v 6.5, npm: v3.10, AngularJs 2 通过将ASP.NET MVC项目与Angualr 2官网上的quick start整合的过程中遇到些问 ...

  5. 在ASP.NET MVC项目中使用React

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:最近在开发钉钉的微应用,考虑到性能和UI库的支持,遂采用了React来开发前端. 目前 ...

  6. 远程调试 ASP.NET MVC 项目

    Visual Studio 支持从一台计算机到另一台设备的远程调试.进行远程调试时,主机可以是任何支持 Visual Studio 的平台.远程设备可以是 x86.x64 或 ARM 平台. 本文将指 ...

  7. 习题-任务2初始ASP.NET MVC项目开发

    一.选择题 1.在ASP.NET MVC项目的RouteConfig.cs文件中,(    )方法注册了默认的路由配置. A.RegisterMap    B.RegisterRoutes    C. ...

  8. Asp.net mvc项目架构分享系列之架构概览

    Asp.net mvc项目架构分享系列之架构概览 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构 ...

  9. 1.2 认识ASP.NET MVC项目结构

    1.开发环境 操作系统:xp.vista.windows 7.windows 8.windows server 2003|2008|2008R2|2012: 集成开发环境IDE: Vsiual Stu ...

随机推荐

  1. LF模式是个坑,ZeroIce中间件让你体会这个痛

    LF模式是个坑,一个小小的失误就可能使你的网络处理瘫痪,Ice就很好地展现了出来,换句话说,Ice中间件或是LF模式就是一个坑,如果你一不小心. LF模式的官方论文中,论述了此模式用于高性能网络并发模 ...

  2. 聊聊并发-Java中的Copy-On-Write容器

    详见: http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytp78   聊聊并发-Java中的Copy-On-Write容器   Cop ...

  3. ubuntu16.04下源码安装onos1.0.2

    由于工作需要,下载安装onos1.0.2的版本,大家看需求可以下载安装更高级的版本 参考链接:http://www.sdnlab.com/14650.html 1.系统环境 Ubuntu16.04 L ...

  4. C# XmlDocument操作XML

    XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Lang ...

  5. 201521123083 《Java程序设计》第6周学习总结

    1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 1.2 可选:使用常规方法总结其他上课内容. protec ...

  6. 第二次作业——个人项目实战(Sudoku)

    Github:Sudoku 项目相关要求 利用程序随机构造出N个已解答的数独棋盘 . 输入 数独棋盘题目个数N 输出 随机生成N个 不重复 的 已解答完毕的 数独棋盘,并输出到sudoku.txt中, ...

  7. 201521123024 《Java程序设计》第1周学习总结

    一.本周章学习总结 1.Java的版本迁移 2.运用eclipse和notepad++编写Java 3.对JDK,JRE,JVM有初步的了解 二.书面作业 1.为什么java程序可以跨平台运行?执行j ...

  8. Java课程设计---团队博客

    课设题目:购物车系统 题目要求: 1.先建立一个文本文件,定义出自己想要的商品.//也可用数据库以商品编号:商品名称:商品品牌:价格作为文件的内容,中间要求用分号或者分割 2.编写程序,定义一个商品类 ...

  9. Java 最常用类(前1000名) 来自GitHub 3000个项目

    这篇文章主要介绍了最常用的1000个Java类(附代码示例),需要的朋友可以参考下 分析Github 3000个开源项目,粗略统计如下.括号内的数字是使用频率 0-3000. 下面的列表显示不全,完整 ...

  10. Babel初体验

    原文地址:→传送门 写在前面 现在es6很流行,尽管各大浏览器都还不能支持它的新特性,但是小伙伴们还是很中意它呀,于是小小的学习的一下 Babel 这里我们不介绍es6相关内容,只是说下入坑前奏,记录 ...