2013-03-09 84 views
0

在我开始之前,我想说我对ASP.NET和C#非常新颖,而且一般来说编程是真的。我创建了一个Web应用程序,其中有一个登录页面,用于查看包含用户数据的自定义数据库以及他们的登录信息。我这样做,而不是使用ASP.NET成员资格,因为在我学院的网络中使用这个并发症。会话 - 登录查看用户数据

由于表中包含许多用户数据记录,我想要做的是让用户登录到应用程序中并(根据他们的登录详细信息)允许他们从我创建的表中查看JUST的详细信息他们有很多用户数据的记录。

我正确的说,我应该根据用户名和密码创建一个会话,并以此方式将它与表中的记录相匹配,并使用SQL来显示其数据而不是整个表格。

如果是这样,我真的不知道如何实现这一点。

我知道这将是非常不安全的,但用户都是虚构的,这个应用程序不会被发布到网络上。我只是希望它以最简单的形式工作,我将在报告中介绍安全方面,并说明如何改进。

任何意见将不胜感激,干杯。

+0

我会开始阅读有关[窗体身份验证](http://support.microsoft.com/kb/301240)。 – 2013-03-09 16:01:53

回答

0

您应该在表格中使用唯一标识符进行排序。像ID或userNr或类似的东西,把它作为一个整数并设置为主键,然后通过双击它(我假设你正在使用Visual Studio)将其身份规范(身份)设置为是。

当用户在那里提交登录信息并将其签出时,您将在该会话中保存唯一标识符。

当您需要提取特定于有问题的用户的信息时,您使用sql WHERE ID(或userNr)等于会话ID。

希望这是你需要的,这是我在这里的第一个答案,所以我想帮助。

1

无论何时你发现用户的凭据登录不够有效,一些/他所有的证书添加到当前会话一样,

Session.Add("sessionvariablename",textBoxLogin.Text); 

在其他网页,自带登录后,请检查以下,

if(Session["sessionvariablename"].ToString()=="xyz") 
{ 
Do whatever you want 
} 

出于安全考虑,您可能不希望为会话添加敏感信息。使用 Guid.NewGuid()为每个用户创建一个唯一的32个字符的十六进制代码并将其存储在会话中。

+0

你真的建议在'Session'中输入明文密码吗? – 2013-03-09 16:03:30

+0

你可以随时加密它,或者完全跳过为会话添加密码,如果安全是你关心的问题,那不是根据问题。添加Uid,电子邮件,用户名等其他内容 – 2013-03-09 16:05:53

+0

然后,您应该更新您的答案以包含一些上下文。恕我直言,在会话中推送安全数据不是最佳做法。您只是重新实现了已通过表单身份验证解决的问题。 – 2013-03-09 16:08:07

0

如果我正确的做法是使用用户名和密码作为会话参数,但它不是最好的主意。通常情况下,你的用户表包含每种记录的一种唯一标识符(guid或autoincrement id)。您可以将此标识符用作会话参数。