问题:我需要创建一个简单的独立HTML代码段登录工具,我可以在另一个域上使用,然后通过向其发送SSL请求来访问我的目标数据库(使用他们的API参数)。如果登录成功而不是转移到目标登录页面,如果登录失败而不是转到“错误登录页面”,则所有这些都由我的目标处理。
所以我希望能够从www.example.com登录www.target.com
www.example.com提供远程登录代码(HTML网站)
www.target.com拥有用户和密码数据库
在我的目标web.config上我有LoginRemoteURLAllowed,然后我可以设置请求网址以匹配我的HTML代码段所在的域。
我想要这样做的原因是我有两个独立的网站,分别有域名。一个用于通用公共产品目录,第二个域是您必须登录才能访问的仅限私有成员的目录。
我们已经有了这样的系统设置,但我没有设计它,我正在尝试对其进行逆向工程,以创建一个包含我可以在其他网站上使用的登录核心的独立html文件。
以下是我正在尝试逆向工程的内容。从当前的工作模型中发挥作用(使用代码检查器直接从示例网站获取)。
用于输入管理的HTML代码
label>Example Login</label>
<div id="formMC_pnl" class="group" onkeypress="javascript:return WebForm_FireDefaultButton(event, 'formMC_btnMCSubmit')">
<input name="formMC$txtMCUserName" type="text" value="Username" id="formMC_txtMCUserName" class="txtField" placeholder="Username" onfocus="if (this.value=='Usernname') { this.value='' };" onblur="if (this.value=='') { this.value='Username' };" />
<input name="formMC$txtMCPassword" type="password" id="formMC_txtMCPassword" class="txtField pass" placeholder="Password" onfocus="if (this.value=='Password') { this.value='' };" onblur="if (this.value=='') { this.value='Password' };" />
<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。
答案 0 :(得分:0)
您无法验证跨域。
充其量,您可以让网站点击数据库验证用户名和密码,然后生成GUID将其存储在用户表中并将其返回给用户以存储在cookie中。
返回并创建cookie后,重定向到目标站点。然后验证陆地cookie中的GUID。这还需要global.asax中的页面或代码或AppCode中的authentication.cs页面验证并创建会话或重定向。
如果GUID无效,则重定向即string.empty或与数据库中的GUID不匹配。