【问题标题】:Sharing authentication between ASP.NET and WordPress在 ASP.NET 和 WordPress 之间共享身份验证
【发布时间】:2009-09-14 10:33:19
【问题描述】:

我需要在 ASP.NET 网站和 WordPress 之间自动验证用户身份。这个想法是一旦你登录到 ASP.NET 网站,如果你浏览 WP 页面,你就会自动登录,反之亦然。

在 ASP.NET 中,我可以针对 WP 数据库对用户进行身份验证,但这就是我能想到的,所以问题是。

-如何启用这种双向认证方案?

-祖拜尔

【问题讨论】:

    标签: php asp.net wordpress


    【解决方案1】:

    我有一个类似的问题,我有一个 ASP.net 应用程序(第三方)和一个 PHP 应用程序(内部构建)。我只用几行代码修改了 ASP.net 应用程序,使它像这样工作:

    1. ASP.net 应用程序的用户日志
    2. ASP.net 应用程序设置会话 cookie(这是自动的)
    3. 修改:ASP.net 在数据库中添加一行,其中包含会话 ID(在 cookie 中)和用户名
    4. PHP 应用程序读取 ASP.net 会话 cookie 并获取会话 ID
    5. PHP 应用程序在数据库中搜索会话 ID,如果找到,它会自动将会话与找到的用户名相关联

    我还添加了会话的到期时间,以尽量减少模仿的可能性...

    【讨论】:

    • 这似乎特别可行,因为 .NET 和 WP 都托管在同一个域下,所以我认为 cookie 共享更容易。由于我没有 PHP 经验,我需要知道 - 如何在 PHP 中读取 ASP.NET 会话 cookie(示例)? - 我看到 WP 在登录时设置了一个 auth-cookie,例如“$ABC$XYZ$ABCDEFGHIJKL..”,ASP.NET 如何读取它以预先验证同一用户?
    • 这里是关于 cookie 的概述。您还需要找出当前用户名并将其添加到数据库表中,但这并不是一项艰巨的任务。 php.net/manual/en/features.cookies.php(PS:如果你喜欢我的回答,请点赞,或者标记为接受)
    • 感谢您的帮助,我想我已经从 ASP.NET -> WP 中找到了自动身份验证用户的解决方案,相反,我们决定添加一个指向 login.aspx 的链接页。我会尽快分享 PHP 代码。
    【解决方案2】:

    有两种不同的服务器端脚本,很难创建双向身份验证。由于 WP 使用cookies,您可能会尝试针对 cookie 对用户进行身份验证。创建一种机制来检查用户机器中是否存在有效的 WP cookie,然后从 cookie 中读取以对用户进行身份验证。

    【讨论】:

      【解决方案3】:

      通过SetCookie()方法从PHP发送cookie,然后通过读取cookies collection从ASP.Net读取cookie(因为cookie的名称改变了)。然后解码 url..(在 ASP.Net 中你会得到加密的 url。特殊字符被替换为(#-->%23 , @--->%40 etc..)

      【讨论】:

        猜你喜欢
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        • 2016-07-27
        • 2011-08-09
        • 2011-04-22
        • 2011-11-04
        • 1970-01-01
        • 2014-08-10
        相关资源
        最近更新 更多