嗨,我正在使用 AngularJs 和 c# wcf RESTful 服务构建一个小型 Web 应用程序。还有一个登录模块,它有一个存储过程,代码最少,只验证提供的用户名/密码是否正确,这里是代码
alter procedure sp_loginTable
(
@username varchar(50),
@password varchar(25),
@output bit out
)
as
declare @queryedUsername varchar(50)
declare @queryedPassword varchar(25)
select @queryedUsername =username,@queryedPassword=password from userLoginTable where username='surya'
if ((@queryedUsername=@username) and (@queryedPassword=@password))
SET @output=1
ELSE
SET @output=0
GO
并且有一个密码“123456aA”存储在表中..如果我给“123456aa”作为输入,代码总是返回1..我搜索了许多堆栈溢出问题,人们在字符串比较上提出了各种解决方案,但代码很大。。
如果我们编写,字符串比较很容易在 C# 中实现
string nameone = "123456aA";
string nametwo = "123456aa";
Console.WriteLine(nameone.Equals(nametwo));//returns false
有一种相等的方法可以进行正确的字符串比较..
那么最好将登录验证移动到 dataAccessLayer 还是应该在存储过程中执行验证?..我不想仅仅为了这个验证而在存储过程中编写大量代码,因为 c# 有一个处理字符串的内置函数比较顺利。。
给你宝贵的意见..
谢谢