项目目标部署环境:CentOS 7+

项目技术点:.netcore2.0 + Autofac +webAPI + NHibernate5.1 + mysql5.6 + nginx

开源地址:https://github.com/wmowm/nh.core

上篇我们已经讲了权限管理的实现,传送门:

第三章 搭建一个通用的权限管理系统

这次我换一种讲解,项目与博客,两者同时进行,gogogo

第一步,找个酷炫的登录页面

自己写页面是不可能的,这辈子都不可能的,设计又不会,css又不精通,只有在jq22上面偷页面才能维持的了生活的样子

最近的那个猫头鹰捂眼睛挺火啊,就是它了,先偷回来,再自己改造

先在mvc项目里创建一个登录

话说.net core添加视图是真心慢啊,要等半天,趁这时间吐槽一下

页面也非常简单,抄袭过来是这个样子,我们对它改造一下

改造效果如下

坑1字体图标问题

我也不知道它这个字体图标怎么选,先F12看看它是什么玩意

原来是这个,百度一下,现在最新的都是4.7了,我以前用的是4.4,干脆直接把以前的拿来用了

现在继续去实现验证码功能,还是用我们比较熟悉的GDI+绘制图片

在.net core里需要引入ZKWeb.System.Drawing包,听说部署到linux上,会有毛病,这个我们后面部署的时候再说

每次点击验证码,都会获取新的图片,然后把这个验证码md5加密保存到session里面

HttpContext.Session.SetString("pic_code", pic_code);//存入session

会直接报错

Session 还没有在这个应用程序或请求中配置好。

直接百度就好,园子里大神真是多,我是参考这篇文章实现的

ASP.NET Core 中文文档 第三章 原理(13)管理应用程序状态

现在做一个简单的提交,以前我们都是习惯这样ajax提交表单,.net core里已经没有了这种方式,那没办法,我们只有换一种形式了

听说jquery-ajax-unobtrusive.js这个插件不错,用的玩玩,效果还不错

<form asp-controller="Home" asp-action="Login"  data-ajax="true" data-ajax-mode="replace" data-ajax-loading="ValidateLog" data-ajax-success="tips(data)" data-ajax-method="post" class="container offset1 loginform">

验证码成功,就跳转到home/index页面,失败就刷新验证码,并给出提示

    //登录回调函数
function tips(data) {
if (data.status == "") {
window.location.href = data.returnUrl;
} else
{
$("#imgcode").attr("src", "/Home/GetAuthCode?time=" + Math.random());
alert(data.msg);
}
}

我们继续优化它,还需要一个好看的loading,直接去jq22上面找,然后整合到外面项目中来

放在这里,效果还是挺不错的,然后完美继续优化弹出的提示框

做到这里基本上实现了整个功能,先将它发布到Linux上,看看效果

苦逼了,nginx这块还没有弄好,现在是一次只能代理一个端口,晚上继续研究

2018-4-25 8:21

关于nginx,网上资料很多,是自己弄复杂了,现在简单说下

最后一段,引入服务器的配置信息,它会读取/conf.d/目录下所有包含conf后缀的配置文件

default.conf 内容如下:

这里代理转发了两个站点,映射端口分别为8081与80,现在还没有做静态资源转发

说说昨天遇到最大的深坑IIS Express崩溃,一个晚上都在弄,太可怕了

说说IIS Express崩溃的一些怪象

怪象1.无法正常的生成解决方案,会报错程序被占用,我必须手动关掉IIS Express进程

怪象2.mvc路由絮乱

我们直接说怪象2,怎么一个絮乱呢,举个栗子,mvc路由设置/home/index 为初始页面,此时我输入/home/login显示的内容还是index的内容,而且调试不会命中断点

除了启动的时候,会命中/home/index的控制器断点,后续所有刷新都不会命中断点,尝试用不同浏览器排除了缓存,加上GUID,发现每次GUID的值都会变化,前端抓包,排除301转发

重启电脑,也无法解决

没办法了,我只能让群友那边跑我的代码,有两位群友跑过,显示正常,我意识到可能是我的iis容器出现了问题,我尝试直接使用控制台作为容器,一切正常

做完这个,发现一个因细节疏忽,导致js出错,这个错误又调试了好久

模板页的引用,母版页引用会导致js冲突,项目中可能同时存在两个相同的jq引用,导致部分方法失效,所以一定要检查是否使用母版页

如不使用母版页,页面加上

@{
Layout = null;
}

觉得对你有帮助的,可以去给我开源项目点个星星

开源地址:https://github.com/wmowm/nh.core

第四章 .net core做一个简单的登录的更多相关文章

  1. c#利用三层架构做一个简单的登录窗体

    就个人而言,三层架构有点难理解,不知道该如何下手,各层与各层之间怎么调用 最近一直在研究三层架构,经过网上学习与多方打听写一下自己的心得.有不足之处,可以评论和私聊探讨 言归正传: 三层架构(3-ti ...

  2. python小练习,利用dict,做一个简单的登录。

    '''利用字典实现登录'''users=[{'username':'jerry','pwd':'123456'},{'username':'tom','pwd':'1'}] def login(use ...

  3. python 做一个简单的登录接口

    # -*- conding :utf-8 -*-# File Name: homewoe# Create Date: 2019/11/20 / 9:15# Change Activity: 2019/ ...

  4. .Net Core 3.0后台使用httpclient请求网络网页和图片_使用Core3.0做一个简单的代理服务器

    目标:使用.net core最新的3.0版本,借助httpclient和本机的host域名代理,实现网络请求转发和内容获取,最终显示到目标客户端! 背景:本人在core领域是个新手,对core的使用不 ...

  5. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截

    程序猿修仙之路--数据结构之你是否真的懂数组?   数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少. ...

  6. 【 D3.js 入门系列 — 3 】 做一个简单的图表!

    图1. 柱形图 1. 柱形图 前几章的例子,都是对文字进行处理.本章中将用 D3 做一个简单的柱形图.制作柱形图有很多种方法,比如用 HTML 的 <div> 标签,或在 SVG 上绘制 ...

  7. 给 asp.net core 写一个简单的健康检查

    给 asp.net core 写一个简单的健康检查 Intro 健康检查可以帮助我们知道应用的当前状态是不是处于良好状态,现在无论是 docker 还是 k8s 还是现在大多数的服务注册发现大多都提供 ...

  8. 做一个简单的scrapy爬虫

    前言: 做一个简单的scrapy爬虫,带大家认识一下创建scrapy的大致流程.我们就抓取扇贝上的单词书,python的高频词汇. 步骤: 一,新建一个工程scrapy_shanbay 二,在工程中中 ...

  9. 【Bugly干货分享】一起用 HTML5 Canvas 做一个简单又骚气的粒子引擎

    Bugly 技术干货系列内容主要涉及移动开发方向,是由Bugly邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明出处. 前言 好吧,说是“粒子引擎”还是大言不 ...

随机推荐

  1. Android开发小知识

    修改Android app图标(Android Studio) 1.  res\drawable 放置icon.png(此图片是你需要修改的图标); 2.  修改AndroidManifest.xml ...

  2. tinkerpop(1) 地图数据库console科研

    原创文章连接: http://blog.csdn.net/freewebsys/article/details/46348975 转载请注明出处. 1,关于图数据库 tinkerpop是apache孵 ...

  3. delphi xe 之路(14)使用FireMonkeyStyle(一共30篇)

    FireMonkey使用Style来控制控件的显示方式. 每个控件都有一个StyleLookup属性,FireMonkey就是通过控件的这个属性来在当前窗体的StyleBook控件中查找匹配的Styl ...

  4. Opencv中K均值算法(K-Means)及其在图像分割中的应用

    K均值(K-Means)算法是一种无监督的聚类学习算法,他尝试找到样本数据的自然类别,分类是K由用户自己定义,K均值在不需要任何其他先验知识的情况下,依据算法的迭代规则,把样本划分为K类.K均值是最常 ...

  5. 转:PyQt4学习资料汇总 from coderzh

    一个月前研究了下PyQt4,感觉比较不错.相比wxpython,界面美观了很多,并且将界面设计与代码逻辑很好的分离了开来.关于PyQt4的资料也不少,这里我将我找到的资料汇总一下,以防自己以后忘得一干 ...

  6. WPF之动态换肤

    原文:WPF之动态换肤 如何实现换肤呢,对于复杂的换肤操作,如,更换按钮样式.窗口样式等,我们需要写多个资源字典来表示不同的皮肤,通过动态加载不同的资源字典来实现换肤的效果:对于简单的换肤操作,如更改 ...

  7. AngularJS table循环数据

    <div ng-app="CycleTableApp" ng-controller="CycleTableContrl as vm"> <h1 ...

  8. liunx 桥接 上网 ip配置 外部网络访问

    一.设置VMware 在vmware的[编辑]-->[虚拟网络编辑器]设置:将VMnet0设置为“桥接”,并桥接到宿主机器的网卡(可以是有线或者无线网络).   二.设置虚拟机系统(以cento ...

  9. CentOS搭建python开发环境

    装了个CentOS 5.5,想在上面搭个python的开发环境,可是还是遇到了很多问题,记录一下过程: 1.python升级 查看python版本 python -V Python 2.4.3 因为p ...

  10. Socket进阶篇

    Socket简介 1,socket是什么? 2,socket的作用 3,socket怎么用 4,socket的扩展 ——————————————————- socket是什么? Socket这个名词现 ...