C# 用于登录的存储过程
我有一个C# 用于登录的存储过程,c#,asp.net,html,sql-server-2008,C#,Asp.net,Html,Sql Server 2008,我有一个user表,其中包含以下列: user_id user_name password createdate full_name location dep_id user_type 我有一个包括用户名和密码的登录表单 在这里,我创建了一个splogin create procedure splogin @User_Name nvarchar(50), @Password nvarchar(50) as Select
user
表,其中包含以下列:
user_id
user_name
password
createdate
full_name
location
dep_id
user_type
我有一个包括用户名和密码的登录表单
在这里,我创建了一个splogin
create procedure splogin
@User_Name nvarchar(50),
@Password nvarchar(50)
as
Select * from [User]
Where User_Name = @User_Name
and Password = @Password
然后我想知道在登录表单或用户配置文件表单中是否提到isusertype
通过登录表单,任何用户都可以登录
i、 e批准文件的经理、董事和执行官
简单用户只上传文档听起来你想使用用户对象执行安全性。如果是这样的话。我将使用“Select”语句返回的内容创建一个用户对象 基类
class UserObj
UserName
Location
DepartmentID
UserType
然后将其存储在会话中。像这样:
Session["CurrentUser"] = UserObj;
然后,每当您想要执行验证时。从会话中获取对象
UserObj currentUser = (UserObj)Session["CurrentUser"];
并查看它是否具有有效的用户类型
if(currentUser.UserType == "Director")
{
//run this code
//hide objects
grid_BusinessStuff.visible = false;
}
首先,将密码存储在数据库中被认为是不好的做法(团队中任何具有DB访问权限的人都可以看到所有密码)。相反,您应该在数据库中存储单向散列或校验和,然后在登录期间,根据提交的密码重新创建单向散列或校验和,并查看它是否与数据库中的内容匹配 但对于您的问题,听起来您好像在尝试将身份验证(验证您是您所说的人)和授权(是否允许您执行您试图执行的操作)结合起来
这两个功能应该彼此分开。将它们合并为一个函数也是一种不好的做法,可能会导致许多困难 请不要在数据库中存储明文密码。请考虑使用新的网页简单会员资格提供程序。这真的相当不错,而且经过深思熟虑。。。它应该可以很好地处理您现有的数据。usertype是在登录表单中还是在用户配置文件中?请您解释一下您的代码…不明白您的答案