-1

我有一个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

然后我想知道是usertype在登录表单或用户个人资料表单中提到的吗?

并且通过登录表单任何用户都可以登录

即批准文件的经理、主管和执行人员,以及只上传文件的简单用户

4

2 回答 2

2

首先,将密码存储在数据库中被认为是一种不好的做法(您团队中具有数据库访问权限的任何人都可以看到所有密码)。相反,您应该在数据库中存储单向哈希或校验和,然后在登录期间,根据提交的密码重新创建单向哈希或校验和,并查看它是否与数据库中的内容匹配。

但是对于您的问题,听起来您正在尝试将身份验证(验证您是您所说的人)和授权(您是否允许做您想做的事情)结合起来

这两个功能应该彼此分开。将它们组合成一个功能也是不好的做法,可能会导致许多困难。

于 2013-03-13T20:09:24.517 回答
0

听起来您想使用用户对象执行安全性。如果是这种情况。我将使用您的“选择”语句返回的内容创建一个用户对象。

基础班

class UserObj
UserName
Location
DepartmentID
UserType

然后将其存储在 Session 中。像这样:

Session["CurrentUser"] = UserObj;

然后每当您要执行验证。让对象退出会话。

UserObj currentUser = (UserObj)Session["CurrentUser"];

并查看它是否具有有效的用户类型

if(currentUser.UserType == "Director")
{
  //run this code
  //hide objects
  grid_BusinessStuff.visible = false;
}
于 2013-03-13T20:08:10.933 回答