0

我想创建一个网站,登录系统不应该由cookie处理,而是在本地(服务器上)SQL DB中的(一个)表上。

有没有办法做到这一点?竟然没有偏路?

我应该在哪里保存什么而不是 cookie ???

4

5 回答 5

3

默认情况下,ASP.NET 使用会话 cookie 来跟踪用户请求。如果您使用无 Cookie 会话,您会发现会话 ID 被附加在来自浏览器的所有请求中。在许多情况下,这也可能是不可接受的。

即使您决定在每个请求上访问数据库并检查“LoggedIn”标志,您仍然需要一些方法来识别传入请求属于特定用户。这可能是隐藏字段中的加密值的形式,具体取决于您的安全方案。也就是说,这并不是比使用 cookie 更好的方法,因为来自客户端的任何数据都有可能被篡改。

就个人而言,我认为 Cookie 非常适合跟踪用户请求,只要您正确加密它们即可。

于 2009-06-24T16:20:56.513 回答
2

您仍然需要某种方式来区分用户。如果您不使用 cookie,那么您将不得不在 url 中传输该信息或仅允许来自单个 IP 地址的一个用户(这真的很愚蠢)......或其他东西。饼干还不错:-)。

于 2009-06-24T16:16:14.627 回答
1

无 Cookie 的 ASP.NET

如果您在实际实施登录系统时需要帮助,则需要包含有关您的特定问题的更多详细信息。

于 2009-06-24T16:13:54.597 回答
1

您可以将您的用户名等存储在数据库中,但您仍然需要一种方法来识别用户,因为他/她从一个页面导航到另一个页面。这是其中的 cookie 角色,用于保留此登录令牌...

可以实现一些其他方式来处理这个令牌。可以使用 URL 或某些隐藏字段(作为 ASP.NET 的 ViewState)来存储此令牌。

所以,是的;可以办到。但这需要一些工作,因为您不能使用 ASP.NET 已经为您提供的功能。(ASP.NET 具有将此令牌作为 cookie 处理的内置功能,并将凭据存储在数据库中。)

于 2009-06-24T16:20:20.180 回答
0

使用SqlMembershipProvider

于 2009-06-24T16:14:35.500 回答