【问题标题】:How to use cookies in C#? [closed]如何在 C# 中使用 cookie? [关闭]
【发布时间】:2012-01-21 22:10:37
【问题描述】:

我有一个问题,我不知道是否可以解决,但我认为应该可以。我在 Microsoft Visual C# 中工作,使用 Windows 窗体应用程序。

我对网站了解不多。如果一个网站在我的计算机上存储了一个 cookie,它将使用该 cookie 来查看我是否已登录以及使用什么帐户,对吗?因此,如果我删除 cookie,它会将我注销。或者,如果我要添加一个特定的 cookie,该站点会认为我已登录。我在这个上是否正确?

那么,例如,是否可以让我的应用程序在我登录一次时将 cookie 存储在文本文件或其他东西中,然后让它使用该 cookie 自动登录?

那我该怎么做呢?

提前谢谢你,在谷歌上真的很难找到。

【问题讨论】:

  • 您可以这样做,但可以说,弄乱另一家公司使用的与身份验证或授权相关的方法是根本错误的。
  • @Lloyd,我不同意。如果我编写了一个非浏览器应用程序,该应用程序在我的浏览器 cookie 存储中查找 cookie 以在访问站点上的资源时启用身份验证,那么会有什么问题?

标签: c# winforms cookies browser


【解决方案1】:

Cookie 特定于网络浏览器。你当然不应该弄乱 cookie 文件。

如果您的意思是要使用 cookie 来验证 win 表单用户,那么您可以做的一件事是托管一个 WebBrowser 控件并导航到您的登录页面,然后抓取一个值只发给登录的人。然而,这闻起来不像是一个好的设计,并且只会支持 IE(更具体地说是 shdocvw)。另外的选择; ClickOnce 支持通过 asp.net 网站获取客户端“主体”,因此您可以将其用于身份验证。

如果你的意思是你想让 winform 为不相关的网站提供 cookie...不要那样做:p

【讨论】:

    【解决方案2】:

    这不适用于大多数网站或所有浏览器。浏览器将他们的 cookie 保存在不同的地方,考虑到其中可能包含个人信息,有些浏览器甚至可能对其进行加密。如今,大多数网站只将会话 ID 保存在 cookie 中,然后将特定于您是否登录的信息存储在 Web 服务器上的会话中,并且通常会在几分钟/小时后过期。因此,如果您确实创建了一个可以删除和恢复 cookie 的应用程序,并假设 cookie 本身没有过期,服务器将从 cookie 中获取您的会话 ID,查看它是一个过期的会话,为您创建一个新会话,然后强制你重新登录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-03
      • 2017-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-22
      相关资源
      最近更新 更多