Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于登录的存储过程_C#_Asp.net_Html_Sql Server 2008 - Fatal编程技术网

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
然后我想知道在登录表单或用户配置文件表单中是否提到is
usertype

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

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是在登录表单中还是在用户配置文件中?请您解释一下您的代码…不明白您的答案