数据库(sql servel)设计登录名

数据库来设计登录名,简单的来说的是登录名,首先获取用户,密码,才实现效果

 

1.登录名的用户

 请输入账号要绑定的用户的,首先将以用户当成数据库使用的,用户相当于数据库的实现,用户的账号设计吧,首先用户吧,用户相当与数据库的样式相同的

   public ActionResult doCheckLogin()
        {
            string returnJson = "";
            //Request[]接收参数
            string strUserName = Request["userName"];//用户名
            string strpassword = Request["password"];//密码

 用控制器创建方法的,来绑定用户的信息表,来通过实现用户的效果

1.string returnJson

string returnJson 返回文本的json字符串形式,

Request来接收参数,Request()来控制器的

通过用String字符串形式来创建变量 接受参数,

string strUserName=Request{"userName"}就是把声明传个字符串的新形式的方法,用户名的参数Request的方法不仅可以接受参数

用户的参数等于数据库的用户表链接的,其实用户表其实也是数据库的设计,用户的数据库存在数据库的,保存到用户的表中实现的

2.string strpassworld

string strpassword链表中的密码,存在密码的数据的页面,密码都用密码框来框架无论实现的,首先给个密码的方法,Request来创建密码的方法保存在数据库表中,然后到实现出来,就是查询到密码

3.try用查询语句,查询用户表

       try
            {
                var linqUser = (from tbUser in myModel.S_User
                                where tbUser.userName.Trim() == strUserName.Trim()
                                select tbUser).Single();

try catch也是一种的方法的查询语句,try和catch的意思就是说累加的方法,try用来查询语句,方便来帮组查询语句,try用来linq的查询语句,try用来泛型的数据库的类型,来try方便查询数据库的表中,加上where的条件语句判断用户的,然后查询到用用户表当中,

try 块内,仅初始化在其中声明的变量。 否则,在完成执行块之前,可能会出现异常。 例如,在下面的代码示例中,变量 ntry 块内部初始化。 尝试在 Write(n) 语句的 try 块外部使用此变量将生成编译器错误。

Try-catch 语句包含一个后接一个或多个 catch 子句的 try 块,这些子句指定不同异常的处理程序。

引发异常时,公共语言运行时 (CLR) 查找处理此异常的 catch 语句。 如果当前正在执行的方法不包含此类 catch 块,则 CLR 查看调用了当前方法的方法,并以此类推遍历调用堆栈。 如果未找到任何 catch 块,则 CLR 向用户显示一条未处理的异常消息,并停止执行程序。

try 块包含可能导致异常的受保护的代码。 将执行此块,直至引发异常或其成功完成。 例如,强制转换 null 对象的以下尝试会引发 NullReferenceException 异常:

4.catch用来判断语句,


                if (strpassword.Trim().Equals(linqUser.password.Trim()))
                {

                    returnJson = "success";
                }
                else
                {
                    returnJson = "用户密码错误!";
                }

            }
            catch (Exception e)
            {
                //Debug.WriteLine(e);
                returnJson = "用户名错误!";
            }
            return Json(returnJson, JsonRequestBehavior.AllowGet);

加上判断密码的为空,如果判断密码成功,就会返回密码输入正确,如果判断密码失败的话,就原地返回密码错误,都跟用户的性质一样,

尽管可以不带参数使用 catch 子句来捕获任何类型的异常,但不推荐这种用法。 一般情况下,只应捕获你知道如何从其恢复的异常。 因此,应始终指定派生自 System.Exception 的对象参数,例如:

异步方法由 async 修饰符标记,通常包含一个或多个 await 表达式或语句。 await 表达式将 await 运算符应用于 TaskTask<TResult>

当控件到达异步方法中的 await 时,将挂起方法中的进度,直到所等待的任务完成。 任务完成后,可以在方法中恢复执行。 有关详细信息,请参阅使用 Async 和 Await 的异步编程

应用了 await 的完成任务可能由于返回此任务的方法中存在未处理的异常而处于错误状态。 等待该任务引发异常。 如果取消了返回任务的异步进程,此任务最后也可能为已取消状态。 等待已取消的任务时将引发 OperationCanceledException

若要捕获异常,请在 try 块中等待任务并在关联的 catch 块中捕获异常。 有关示例,请参阅异步方法示例部分。

任务可能处于错误状态,因为等待的异步方法中发生了多个异常。 例如,任务可能是对 Task.WhenAll 调用的结果。 当等待此类任务时,仅捕捉到其中一个异常,而且你无法预测将会捕获到哪个异常。 有关示例,请参阅 Task.WhenAll 示例部分。

下面的示例阐释了在多个任务可能导致多个异常的情况中的异常处理。 try 块等待由 Task.WhenAll 的调用返回的任务。 应用了 WhenAll 的三个任务完成后,该任务完成。

三个任务中的每一个都会导致异常。 catch 块循环访问异常,这些异常位于由 Task.WhenAll 返回的任务的 Exception.InnerExceptions 属性中。

5.用序列化用js

 function checkLogin()
        {
            //获取数据 序列化
            var formData = $("#fmLogin").serializeArray();

            console.log(formData);

            //数据验证
            if (formData[0].value == "" || formData[0].value == undefined)
            {
                layer.alert("请填写用户名!", {title:'标题',icon:0});
                return;
            }
            if (formData[1].value == "" || formData[1].value == undefined)
            {
                layer.alert("请填写密码!", { title: '标题', icon: 0 });
                return;
            }

序列化. 序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。. 在序列化期间,对象将其当前状态写入到临时或持久性存储区。. 以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。. 序列化使其他代码可以查看或修改,那些不序列化便无法访问的对象实例数据。. 确切地说,代码执行序列化需要特殊的权限:即指定了 SerializationFormatter 标志的 SecurityPermission。

1、以某种存储形式使自定义对象持久化;

2、将对象从一个地方传递到另一个地方。

3、使程序更具维护性。

什么是序列化?

内存中的数据对象只有转换为二进制流才可以进行数据持久化和网络传输。将数据对象转换为二进制流的过程称为对象的序列化(Serialization)。反之,将二进制流恢复为数据对象的过程称为反序列化(Deserialization)。序列化需要保留充分的信息以恢复数据对象,但是为了节约存储空间和网络带宽,序列化后的二进制流又要尽可能小。序列化常见的使用场景是RPC框架的数据传输。常见的序列化方式有三种:

3.Json序列化

JSON ( JavaScript O同ect Notation )是一种轻量级的数据交
换格式。 JSON 序列化就是将数据对象转换为 JSON 字符串。在序列化过程中抛弃了
类型信息,所以反序列化时只有提供类型信息才能准确地反序列化。相比前两种方式,
JSON 可读性比较好,方便调试。
序列化通常会通过网络传输对象 , 而对象中往往有敏感数据,所以序列化常常
成为黑客的攻击点,攻击者巧妙地利用反序列化过程构造恶意代码,使得程序在反序
列化的过程中执行任意代码。 Javascript 工程中广泛使用的 Apache Commons Collections 、
Jackson 、 fastjson 等都出现过反序列化漏洞。如何防范这种黑客攻击呢?有些对象的
敏感属性不需要进行序列化传输 ,可以加 transient 关键字,避免把此属性信息转化为
序列化的二进制流。如果一定要传递对象的敏感属性,可以使用对称与非对称加密方
式独立传输,再使用某个方法把属性还原到对象中。应用开发者对序列化要有一定的
安全防范意识 , 对传入数据的内容进行校验或权限控制,及时更新安全漏洞,避免受
到攻击。

6.

       //发送登录请求
            $.post("/bookStop/doCheckLogin", formData, function (rtMsg) {
                if (rtMsg == "success") {
                    layer.alert("登录成功!");

                    //跳转到主页面
                    //ndow.location.replace("/Main/Main");
                    window.location.href = "/bookStop/Index";

                } else {


                    layer.alert(rtMsg);
                }
            });


        }

发送请求ajax的请求的 ,用来序列化的作用的,用跳转主页面

7.

 //回车键实现登录
        window.onkeyup = function (event) {
            var e = event || window.event;

            //判断当前是否点击了回车键,键盘码为13
            if (event.keyCode == 13) {
                //调用验证登录方法
                checkLogin();
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜爱Java语言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值