asp.net - 从 asp.net 自动登录到 wordpress
问题描述
我有一个 ASP.NET 项目,其中包含 WordPress 的 URL 的用户名和密码。如何在 ASP.NET 中创建重定向方法,以便它直接登录到 WordPress 网站的管理面板?
解决方案
如果您以简单的方式执行此操作,您肯定会被网络犯罪分子窃取您的 WordPress 密码。
尽管如此,它还是值得解释的。
在您View Source...
的 wordpress 管理员登录页面上执行操作,并在 HTML 中查找表单定义。去掉很多额外的东西,它看起来像这样。
<form name="loginform" id="loginform" a
ction="https://wordpress.example.net/wp-login.php" method="post">
<input type="text" name="log" id="user_login" class="input" value="" size="20" />
<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" />
</form>
因此,您可以尝试这样的重定向字符串:
https://wordpress.example.com/wp-login.php?name=admin&pwd=foobar
使用 GET 请求提供用户名和密码。但它不起作用:WordPress 坚持用户名和密码出现在 POST 请求参数中。因此,您需要让您的 asp.net 代码写出一个包含最小表单和一些 Javascript 以发布该表单的最小网页。
该表单页面将在写入 Web 浏览器时看起来像这样。
<html><head></head><body>
<form name="loginform" id="loginform"
action="https://wordpress.example.net/wp-login.php"
method="post">
<input type="text" name="log" value="USERNAME" />
<input type="password" name="pwd" value="PASSWORD" size="20" />
</form>
<script type="text/javascript">
document.getElementById('loginform').submit();
</script>
</body></html>
看看这是如何工作的?您可以创建最简单的 html 表单,其中包含值(用于 USERNAME 和 PASSWORD)。您可以使用最简单的 Javascript 代码立即发布表单。当您将该表单传递给用户的浏览器时,浏览器会立即将其发布到 WordPress,并且您会在浏览器中获得 WordPress 控制面板。
但这是可怕的安全性:网络犯罪分子要找出您的 WordPress 密码所需要做的就是关闭 Javascript,然后在这个小网页上查看源代码。如果您的 asp.net 应用程序或 WordPress 实例可以从公共 Internet 访问,请不要这样做。如果这样做,您可能会在几个小时内失去对 WordPress 网站的控制。
您真正想要的是某种联合身份验证。Active Directory 联合服务、SAML 和 OAuth 是执行此操作的三种方法。所有方法都相当安全。都有 WordPress 插件。所有这些都需要大量的系统管理技能来安装和配置。
推荐阅读
- c++ - 当标头位于 /usr/local/include 中时,我在哪里放置 cpp 文件?
- reactjs - 在服务器上推送新更新时如何刷新服务工作者
- node.js - 我不知道如何在同一个 mongodb 查询中使用 $group 、 $sum 和 $avg
- audio - 如何在不改变音高的情况下使用抽取来减慢音频信号
- flutter - 在实际搜索发生之前在页面加载时从 Firestore 中提取的值
- matlab - 是否可以从自动构建系统链接到 MATLAB libmex?
- javascript - 0x800a138f - JavaScript 运行时错误:无法设置未定义或空引用的属性“CustomFunctions”
- android - 带有 Gitlab 公共存储库的 Jitpack 提供了对 repo 错误的无读取权限
- python - matplotlib:如何绘制一个带有随机 x 变形的圆?
- r - 在dada2中使用filterandTrim函数时R(4.0.2)中的错误消息