2023年11月4日

.NET BLAZOR开发小记 二

作者 雪哥

方案有了,那就先整。

系统在我脑子里,就我一个人闲了抽空搞,所以没有那么多设计相关的东西。另外好多技术也是现学现用,所以就一边搞一边想一边学。

首先是登录。

以前很简单,输入用户名密码,然后扔数据库校验,成功了就显示功能界面。C/S软件都是自定义的协议,一般也不在公网上跑,所以安全问题不大。只要数据库不被人脱了(一般也没人脱),可以认为是安全的。

现在的网页还是有安全风险的。用户名密码要通过HTTP传到后台,后台再校验,再返回前端。

研究了一下常用方案,如cookie,jwt等。

jwt试了一下,解决不了界面刷新还需要再次登录的问题。JAVA或其他的解决方法较多,.NET的少,另外我也不了太了解框架里面是怎么解决的。微软自带的有,但是里面包的框架对于我来讲太复杂,也没时间去学习。

COOKIE也试了,前端也拿到信息了,但是还牵扯到一些东西,比如有效期,返回的一些信息等对于我来讲也不合适。

然后,我试了一下sessionStorage。里面的数据在浏览器关闭时会清除,这对于我来讲太实用了。另外使用也很友好,不用写JS,直接使用ProtectedSessionStore写入数据或读数据就好了。用户登录状态,附带的其他信息都可以用。那就用它了。

现在思路有了,先输入用户名,密码,然后加密,POST到后台。后台查库,返回状态及相关数据。

然后界面就等着。正确就跳转功能界面,错误就提示。

后来发现在浏览器后面输入URL也能进入功能界面,那我就在路由上加了个强制跳转,只要没有session信息,就只能显示登录界面。

登录搞定。

后台好写,顺手就写了个WEBAPI,试了一下OK了。难点在于前端页面。

BLAZOR是一个一个的组件。我理解组件就是相当于DELPHI上的控件。一个输入框是个组件,再加上一个密码框也是。怎么让他们展示出来,而不单独跳转一个界面,我模仿着写了一个LAYOUT,登录组件套用这个自定义的LAYOUT,就显示出来了。

后面使用过程中发现也可以根据自己的需求自定义些组件,相当好用。

看看成果吧,很丑,但对于我来讲已经很满足了。毕竟我不会美工,放个背景图都不会(捂脸)

登录

光把这些排列这么整齐已经废老劲了,就这样吧。