问题描述
前几天按照论坛上几位大大的知道,我用Access数据库实现了,在Access中建立数据表,并且,在数据表中添加数据,然后通过OleDbConnectioncon=newOleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+Application.StartupPath+@"DatabaseAccount.accdb");
这个连接代码和stringcmdStr="select*fromAccountwhereusername='"+txtUserName.Text+"'andpassword='"+txtUserPwd.Text+"'";
这个查询代码,实现了,用户名和密码的登陆但是,我无意中,却发现我设置的用户名Admin密码Admin,在用户使用用户名admin的时候,是可以登陆的?于是我查了一下,网络中大部分说数据库是不区分大小写的但是,如果是这样的话,那岂不是乱掉了么?不知道论坛上的各位,有没有遇到过我的这种问题,以及各位是如何解决掉的?最好是给C#的代码,因为数据库我实在是不懂,目前我唯一会做的,就是在数据库中建立一个表,并且在表中添加一些数据而已--
解决方案
解决方案二:
用户本来就不区分大小写啊,MSSQL是可以设置是否区分大小写的,mssql不知道但密码存入数据库前是要加密的,加密的时候是区分大小写的
解决方案三:
引用1楼starfd的回复:
用户本来就不区分大小写啊,MSSQL是可以设置是否区分大小写的,mssql不知道但密码存入数据库前是要加密的,加密的时候是区分大小写的
您好,我不懂,这个所谓的加密是通过何种手段实现的,我目前会做的就是,在数据库中新建一个表,然后设置主键,然后编写2个列用户名密码然后打开这个表,在用户名和密码这2个列下,填写一些数据(目前,主要是用来自测)
解决方案四:
引用1楼starfd的回复:
用户本来就不区分大小写啊,MSSQL是可以设置是否区分大小写的,mssql不知道但密码存入数据库前是要加密的,加密的时候是区分大小写的
还有,就是如果按照您说的,用户名不区分大小写的话,那我设置的Admin用户名和admin用户名,岂不是就乱套了?
解决方案五:
用户名存在唯一性约束的,设置了Admin,就不可能在存入admin或者adMIn之类的用户名了
解决方案六:
一个简单方式,将账号、密码转换成ASCII码,再转换成字符串,每个ASCII码不足三位的加0。也就是说,用户名是Admin,存储时就保存成“065100109105110”如果用户名是admin,转换后内容就是“097100109105110”这样大小写就有差异了,需要显示时,再每三位转换成字符,就可以了。密码也可以这样处理。这相当于一个很简单的加密,但强度非常的弱了。
解决方案七:
你试试这个论坛用户名是分大小写的么密码加密,搜索md5,或者AES,DES
解决方案八:
区分了admin/Admin这才叫乱.目前好像还见过没用户名区分大小官的网站