代码之家  ›  专栏  ›  技术社区  ›  Shawn Steward

如何在VB.Net桌面应用程序和ASP.Net Web应用程序之间进行匿名身份验证

  •  1
  • Shawn Steward  · 技术社区  · 15 年前

    我正在寻找一种方法,将某种凭据或授权令牌从VB.Net客户端传递到ASP.Net web应用程序,该应用程序允许客户端自动登录到我们的表单验证网站。如果用户登录到本地应用程序,我希望他们能够在不登录网站的情况下查看某些网页。应用程序之间的凭据不同,但我只想向网页传递某种加密令牌或密钥,以便我知道它们来自桌面应用程序。这是否可能不需要用户名和密码登录?

    我还需要确保所使用的URL不能简单地从其他位置复制和使用,因此我需要在加密值中包含某种信息,以了解其来源。

    我知道如何使用表单身份验证登录用户,只需要找出保护此安全的最佳方法。谢谢

    6 回复  |  直到 15 年前
        1
  •  4
  •   Andrew Arnott    15 年前

    OAuth 通常用于允许桌面应用程序访问网站上用户的私有数据。由于您使用的是.NET,我建议您签出 DotNetOpenAuth 其中包括示例OAuth网站和客户端应用程序。它允许传递此安全令牌,该令牌可以告诉您的网站,桌面应用程序是发出请求的应用程序,并且(通常)其数据正在被访问。

    OAuth解决方案最好的一点是,您的桌面应用程序永远不必询问用户的凭据。URL中没有凭据。如果桌面应用程序遭到破坏(可能是因为电脑被盗),网站可以杀死桌面应用程序用来切断访问的安全令牌,而无需用户更改密码。

        2
  •  2
  •   casperOne    15 年前

    请注意,您所做的实际上是 好主意 ,在该情况下,应用程序应 只能为用户分配身份。为此,您应该对使用您的应用程序的每个用户进行身份验证,而不是将应用程序视为身份。做这样的事通常被认为是不好的做法。

        4
  •  0
  •   ProKiner    15 年前

    您的桌面应用程序是否在与您的web服务器位于同一域的计算机上运行(即,所有计算机都位于同一公司)?如果是这样,集成Windows身份验证是最简单的解决方案。

        5
  •  0
  •   Thunder    15 年前

    我认为最好在桌面应用程序中使用web浏览器控件。 然后使用 WebBrowser1.Document

    WebBrowser1.Document.Cookie

    如果用户已签名,则获取。

        6
  •  0
  •   jdigital    15 年前

    我还需要确保这个URL 需要包括一些 将加密值中的信息发送到 知道它是从哪里来的。