解释用户登陆的控制器代码

开发工具与关键技术:VS, ASP.NET MVC
作者:谭威
撰写时间:2019年6月05日
解释用户登陆的控制器代码
再解释上图中的代码前,我得先说明一下login这个自定义的类,这个类里面继承SYS_User这张表,还有UserType(用户类型)、StationName(车站名称)、StationCompanyName(车站所属公司名称)、StationCompanyID(车站所属公司ID)这四个字段。

当请求发送到控制器后,也就是进入上图中的方法,该方法一进来就实例化SYS_User这张表,checkbox是用来记录登陆页面的记住否的变量,接下来我定义一个记录状态的变量,接着我声明一个string类型的strUserNuber来接收到页面的UserNuber(账号);我声明一个string类型的strPassword来接收到页面的Password(密码);我声明一个string类型的checkboxs来接收到页面的checkbox(记住否);在用try来捕获异常,若捕获到异常,则声明的状态为没有此用户,并输出异常,返回到视图;若没有捕获到,则继续运行下面的代码,然后我将SYS_User这张表实例化成dbUser,用这个dbUser来接收到一个数据,后面大半段的意思是实例化我项目中的SYS_User为tbUser这个名字,再根据页面传送过来的用户账号查询出数据库中唯一的与传送过来的账号一样的数据,这里的Single只能接收到一条数据,若没有或者是多条数据,就会报异常,所以上面才会用try捕获异常。接着将用户输入的密码进行AES265后加密后与数据库中的密码对比,若不等于,则声明的状态为密码错误,返回到视图;若相同,则继续运行下面的代码,然后我实例化login这个类为list,后面大半段的意思是我实例化用户表并与其它表进行连接,让login这个类的字段来接收到数据库中表里的数据。
解释用户登陆的控制器代码
然后再判断list.Count是否大于零,若不于零,则声明的状态为用户类型错误,返回到视图;若大于,则继续运行下面的代码,现在用户身份验证完成,开始处理登陆信息,但是在处理登陆信息之前,我需要设置一些session值,来保证后面的页面能直接拿到这个值使用,设置session值之前就必须先要获取到对应的数值,所以上图中有着一大堆获取到什么值的注释,至于后面的list[0],list是我上面用来接收放在login这个类中一大堆数据是实例化名字,[0]是这list是以数据的形式查询查来的,一般来说如果查询出错误来话的数据只有一条,所以就直接用list[0]。上图中设置session值的代码也没有什么难的,这里我就不多价绍了。

接着再判断checkboxs是否等于1,若不等于,那么checkboxs必定等于2(至于为什么,那是因为我在视图中判断记住否如果被勾选,那么checkboxs是否等于1,如果为勾选,那么checkboxs是否等于2),后面的代码意思是将cookie的有效期设置为昨天,这样系统就不会自动保存用户的账号和密码了,声明的状态为success,返回到视图;若等于,则将cookie的账号和密码保存7天,声明的状态为success,返回到视图。
解释用户登陆的控制器代码