none
如何验证登录用户名密码是否正确? RRS feed

  • 问题

  • 如何验证登录用户名密码是否正确?

    如下的语句是否ok:

    var user = from u in ctx.getuserquery()

    where u.userid == textox1.text && u.password == textbox2.text

    select u;

     

    if (user.Count()>=1)   这一句会出错,提示不包含Count的定义。。。

     

    如何解决?thanks


    yfzhu
    2010年10月13日 1:01

答案

  • ctx.Load(ctx.getuserquery(),
                    LoadBehavior.RefreshCurrent, back, null);

    回调事件

    private void back(LoadOperation<User> lo)
            {
                if (lo.HasError)
                {
                    MessageBox.Show(lo.Error.Message);
                    lo.MarkErrorAsHandled();
                }
                else
                {
                    这里进行判断。

    var user = from u in lo.Entitys

    where u.userid == textox1.text && u.password == textbox2.text

    select u


                }
            }

    验证的话,最好是在服务端进行比较好。将名称和加密过的密码传到服务端,再判断是否可以登陆。

    • 已标记为答案 yfzhu 2010年10月14日 7:59
    2010年10月14日 0:35

全部回复

  • 你得到的user是个query对象,需要调用DomianContext.Load 方法来让服务器端执行,你在load回调函数里能获得真正的查询数据

    谢谢,


    Mog Liang
    2010年10月13日 7:27
  • 你好,你可以修改些select子句,让其直接返回一个特定的对象列表,然后判断应该就没问题了。

    或者使用.ToList()

     

    var user = (from u in ctx.getuserquery()

    where u.userid == textox1.text && u.password == textbox2.text

    select u).ToList();

     

     


    BLOG:http://beniao.cnblogs.com MSN:beniao@live.cn
    2010年10月13日 8:23
  • var user = (from u in ctx.getuserquery()

    where u.userid == textox1.text && u.password == textbox2.text

    select u).ToList();

     

    我電腦上提示不包含 "ToList"的定義。有引用 system.linq,如何解決?


    yfzhu
    2010年10月13日 10:30
  • ctx.Load(ctx.getuserquery(),
                    LoadBehavior.RefreshCurrent, back, null);

    回调事件

    private void back(LoadOperation<User> lo)
            {
                if (lo.HasError)
                {
                    MessageBox.Show(lo.Error.Message);
                    lo.MarkErrorAsHandled();
                }
                else
                {
                    这里进行判断。

    var user = from u in lo.Entitys

    where u.userid == textox1.text && u.password == textbox2.text

    select u


                }
            }

    验证的话,最好是在服务端进行比较好。将名称和加密过的密码传到服务端,再判断是否可以登陆。

    • 已标记为答案 yfzhu 2010年10月14日 7:59
    2010年10月14日 0:35