如何创建远程HTML登录页面以登录目标网站

时间:2014-06-26 21:03:21

标签: html asp.net login remote-access login-script

问题:我需要创建一个简单的独立HTML代码段登录工具,我可以在另一个域上使用,然后通过向其发送SSL请求来访问我的目标数据库(使用他们的API参数)。如果登录成功而不是转移到目标登录页面,如果登录失败而不是转到“错误登录页面”,则所有这些都由我的目标处理。

所以我希望能够从www.example.com登录www.target.com

  1. www.example.com提供远程登录代码(HTML网站)

  2. www.target.com拥有用户和密码数据库

  3. 在我的目标web.config上我有LoginRemoteURLAllowed,然后我可以设置请求网址以匹配我的HTML代码段所在的域。

    我想要这样做的原因是我有两个独立的网站,分别有域名。一个用于通用公共产品目录,第二个域是您必须登录才能访问的仅限私有成员的目录。

    我们已经有了这样的系统设置,但我没有设计它,我正在尝试对其进行逆向工程,以创建一个包含我可以在其他网站上使用的登录核心的独立html文件。

    以下是我正在尝试逆向工程的内容。从当前的工作模型中发挥作用(使用代码检查器直接从示例网站获取)。

    用于输入管理的HTML代码

    label>Example Login</label>                
    <div id="formMC_pnl" class="group" onkeypress="javascript:return WebForm_FireDefaultButton(event, &#39;formMC_btnMCSubmit&#39;)">
    
    <input name="formMC$txtMCUserName" type="text" value="Username" id="formMC_txtMCUserName" class="txtField" placeholder="Username" onfocus="if (this.value==&#39;Usernname&#39;) { this.value=&#39;&#39; };" onblur="if (this.value==&#39;&#39;) { this.value=&#39;Username&#39; };" />
    
    <input name="formMC$txtMCPassword" type="password" id="formMC_txtMCPassword" class="txtField pass" placeholder="Password" onfocus="if (this.value==&#39;Password&#39;) { this.value=&#39;&#39; };" onblur="if (this.value==&#39;&#39;) { this.value=&#39;Password&#39; };" />
    
    <input type="submit" name="formMC$btnMCSubmit" value="Login" id="formMC_btnMCSubmit" class="btnSubmit" />
    

    现在我假设它使用webform连接到我的网站,但我不确定它是如何做到的。继承人使用的网络形式

    function WebForm_FireDefaultButton(event, target) {
    if (event.keyCode == 13) {
        var src = event.srcElement || event.target;
        if (src &&
            ((src.tagName.toLowerCase() == "input") &&
             (src.type.toLowerCase() == "submit" || src.type.toLowerCase() == "button")) ||
            ((src.tagName.toLowerCase() == "a") &&
             (src.href != null) && (src.href != "")) ||
            (src.tagName.toLowerCase() == "textarea")) {
            return true;
        }
        var defaultButton;
        if (__nonMSDOMBrowser) {
            defaultButton = document.getElementById(target);
        }
        else {
            defaultButton = document.all[target];
        }
        if (defaultButton && typeof(defaultButton.click) != "undefined") {
            defaultButton.click();
            event.cancelBubble = true;
            if (event.stopPropagation) event.stopPropagation();
            return false;
        }
    }
    return true;
    

    }

    所以现在我只是想知道是否可以制作一个独立的html远程登录来访问我的目标数据库并验证/登录用户。任何和所有帮助将不胜感激,我已尽力提供尽可能多的有关该问题的信息。如果我能进一步澄清,请告诉我。或多或少我想复制这个工作模型,所以我可以将它添加到www.example.com并从示例登录www.target.com。

1 个答案:

答案 0 :(得分:0)

您无法验证跨域。

充其量,您可以让网站点击数据库验证用户名和密码,然后生成GUID将其存储在用户表中并将其返回给用户以存储在cookie中。

返回并创建cookie后,重定向到目标站点。然后验证陆地cookie中的GUID。这还需要global.asax中的页面或代码或AppCode中的authentication.cs页面验证并创建会话或重定向。

如果GUID无效,则重定向即string.empty或与数据库中的GUID不匹配。