0

在开始之前,我想声明我对 ASP.NET 和 C# 非常陌生,而且真的是一般的编程。我创建了一个带有登录页面的 Web 应用程序,该页面查找包含用户数据及其登录详细信息的自定义数据库。我这样做而不是使用 ASP.NET Membership,因为在我的大学网络上使用它会很复杂。

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

我是否正确,我应该根据他们的用户名和密码创建一个会话,并使用这个,以某种方式将其与他们在表中的记录相匹配,使用 SQL 将只显示他们的数据而不是显示整个表?

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

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

任何建议将不胜感激,干杯。

4

3 回答 3

1

每当您发现用户的凭据足以登录时,将他的部分/全部凭据添加到当前会话中,例如,

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

在登录后出现的另一个页面上,检查以下内容,

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

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

于 2013-03-09T15:58:41.283 回答
0

如果我做对了,使用用户名和密码作为会话参数将起作用,但这不是最好的主意。通常,您的用户表包含每条记录的唯一标识符(guid 或自动增量 id)。您可以将此标识符用作会话参数。

于 2013-03-09T15:59:25.467 回答
0

您的表中应该有具有唯一标识符的行。像 ID 或 userNr 或类似的东西,将其设为整数并设置为主键,然后通过双击将其标识规范(即标识)设置为是(我假设您正在使用 Visual Studio)。

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

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

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

于 2013-03-09T16:21:54.220 回答