0

我知道这个问题首先破坏了拥有安全性的目标,但是您知道客户有时会如何。

基本上,客户端有 2 个站点,一个内置 modx,一个内置 asp,它们都有一个登录位置,每个访问者都可以使用一个用户配置文件。

他们希望用户能够登录到 asp 站点,然后单击链接以访问 modx 站点并自动登录 - 我什至不确定这是否可能......

我尝试将登录表单所做的相同变量传递给各个页面,但没有任何成功,我每次都返回到登录页面。

www.mywebsite.com/index.phpid=87&username=myusername&password=mypassword&returnUrl=%2F&service=login&Login=Login

有没有其他人尝试过类似的东西?我有一些代码可以让我用 php 做一些事情,但是在我现在知道的 asp 中构建的引用站点,我有点难过。

E2A:

我在 Modx 论坛上问了同样的问题,并通过回复收到了这个问题:

我认为最好的方法应该是使用第三方登录服务,例如 OpenID。但这意味着要更改基于asp的网站。如果您想使用 url 参数执行此操作,请不要使用“登录”片段。“登录”需要输入来验证用户。制作一个自定义片段并使用安全/登录处理器(我假设您正在运行 Revolution 2.2x)。片段可以是这样的:

<?php 
 $loginContext = $modx->context->get('key');
 $c = array(
   'login_context' => $loginContext,
   'username' => $_GET['username'],
   'password' => $_GET['password'],
   'returnUrl' => null,
   'rememberme' => false
 );
 $response = $modx->runProcessor('security/login', $c);
 return true;
?>

该片段似乎有效并返回值 1,但它没有让我登录,可能是因为我不知道这意味着什么

get usage of the security/login processor

我会在哪里做呢?

4

2 回答 2

0

在用户登录 modx 之前,我已经完成了此操作,并且在身份验证事件之后我在 modx 上触发了一个小 SSO 脚本,这会将他们登录到 moodle 站点〜或者〜如果它们不存在,则在 moodle 中创建并行用户。如果您希望他们首先登录到 asp 站点,您可能必须将用户凭据 [来自 asp 登录表单] 保存在会话变量中,然后通过将发布请求发送到 modx 的页面重新路由它们站点〜然后将它们路由回ASP页面所在的位置。如果你幸运的话。

于 2013-05-23T18:06:05.380 回答
0

您可以在 URL 中传递包含时间戳和用户 ID 的签名令牌,因此 MODX 站点可以验证该令牌是由 ASP 应用程序生成的,并且是最近创建的。切勿在此类令牌中包含凭据或任何非透明用户数据,因为该令牌将在浏览器历史记录中永远可见。

于 2020-08-11T17:15:32.083 回答