用Membership类判断用户是否存在

用Membership类判断用户是否存在
-------------------------精通Asp.net2.0企业级项目开发学习笔记
        前段时间买了本人民邮电出版社出版的精通Asp.net2.0企业级项目开发,对于缺少企业级项目经验的我来说,也许就是被那企业级几个字所吸引。通过一段时间的学习,发现此书对于我们这样的新手具有一定的借鉴性,但是其中错误也很多,在此,我将把自己学习中发现的问题做一记录,希望对与我同样层次的新手有一定的帮助,也是对自己学习的一个小结。
       在本书的OA系统开发中,有这样一段代码
           

    public bool SendMSG(string receive, string send, string title, string content)
    

        
//首先要判断填写的用户名是否正确 
        if (Membership.FindUsersByname(receive) == null)
            
return false;
        
else
        
 

这是一个信息发送类发送信息方法的中的一段代码,它的本意是利用Membership.FindUserByname()判断输入的用户是否存在,如果存在,刚执行发送操作,如果不存在,返回假值。然而我在做单元测试时,发现无论用户是否存在,都会执行发送信息的操作,查数据库表文件,确实增加了一条发送记录。通过查MSDN,发现,FindUserByname方法返回值是一个MembershipUserCollection 集合,通过跟踪发现,即使用户不存在,也不可能返回null值.而MSDN中关于Membership的另一方法GetUser()引起我的注意.将程序更改如下
      

    public bool SendMSG(string receive, string send, string title, string content)
    

        
//首先要判断填写的用户名是否正确 
         if (Membership.GetUser(receive) == null)
            
return false;
        
else

运行测试,程序按预期运行.

原文地址:https://www.cnblogs.com/acro/p/1078746.html