使用重定向来启动应用程序,并且仍然停留在asp.net中的同一页面中
using a redirect to launch an app and still stay in same page in asp.net
我写了一个使用银行身份验证的网站,我不知道这在瑞典以外有多常见,但基本上它要么是手机中的应用程序,要么是windows中的本地软件。要在windows中启动应用程序,需要进行如下重定向:
if (startLocalApp)
{
Response.Redirect("bankid:///?autostarttoken=" + AuthResp.AuthenticateResponse1.AutoStartToken + "&redirect=" + Request.Url.AbsoluteUri);
}
但问题是,软件的重定向并没有按照我需要的方式工作,因为重定向确实会打开一个新的选项卡,其中包含我需要在新选项卡中返回的网页,而会话变量则完全混乱。所以我需要做的是相反的,在一个新的选项卡中启动应用程序,并让它在完成后关闭选项卡,因为在我启动应用程序之前,我已经拥有了所需的所有引用,它甚至不需要在同一个浏览器窗口中执行。
那么如何在另一个选项卡中进行重定向,重定向后是否可以继续执行代码呢?如果没有,我需要写一篇文章,继续执行后面的代码。
编辑:我尝试过一种解决方案,感觉我离它越来越近了,但我还没有完全达到。前端:
<script type="text/javascript">
function StartBankIdApp(){
var _url = 'bankid:///?autostarttoken=<%= (AuthResp == null || AuthResp.AuthenticateResponse1 == null) ? "null" : AuthResp.AuthenticateResponse1.AutoStartToken %>&redirect=null';
var $irWin = window.open(_url, '_blank');
if ($irWin != null) {
$irWin.close();
}
}
</script>
代码背后:
if (startLocalApp)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), StartBankIdApp", "StartBankIdApp()", true);
}
该应用程序没有启动,即它应该打开的窗口没有打开。我做错什么了吗?
我认为您正在尝试使用"URL方案"来启动应用程序。并且你希望应用程序应该在一个新的选项卡(或窗口)中触发。
这可以通过javascript实现。要打开新选项卡中的任何链接,我们可以使用window.open并将目标属性设置为_blank。这是的样本代码
var _url = 'app:MyApp?queryString=somestring';
var $irWin = window.open(_url, '_blank');
if ($irWin != null) {
$irWin.close();
}
我在这里所做的是,在启动应用程序后,我关闭了新的选项卡(或窗口)。
javaScript代码将继续运行(也就是说,它不会等待应用程序完成该过程)。
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- java.net和javascript之间正则表达式的差异
- 将Javascript数组发送到控制器ASP.NET MVC
- ASP.NET通过单击JavaScript按钮触发c#事件
- 将数据从javascript文件导入VB.Net页面
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 从javascript调用asp.net codebehind函数
- 使用重定向来启动应用程序,并且仍然停留在asp.net中的同一页面中
- JS似乎停留在Ajax重新加载页面上的DOM
- 余额仍停留在5000
- 理解 d3.js 源代码:停留在 function.call() 和 “=+”
- 选择不会停留在AngularJS多选绑定中
- FB Timeline应用程序高度停留在800px
- 如何获得下一个/上一个链接以停留在CarouFredSel幻灯片的两侧
- document.body.scroll顶端值停留在0
- AudioContext.当前时间在Chromebook上永远停留在0.010666666
- 倒计时停留在1点
- 将鼠标停留在onclick元素上
- 停留在<李>表单提交后的选项卡
- 为什么倒计时停留在“1”