Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Forms.Authentication和ReturnUrl之间插入确认对话框?_C#_Asp.net_Dialog_Forms Authentication - Fatal编程技术网

C# 如何在Forms.Authentication和ReturnUrl之间插入确认对话框?

C# 如何在Forms.Authentication和ReturnUrl之间插入确认对话框?,c#,asp.net,dialog,forms-authentication,C#,Asp.net,Dialog,Forms Authentication,我正在修改ASP.net webforms应用程序(依赖于Forms.authentication)的身份验证系统,以将每个用户限制为单个浏览器会话。为了支持这一点,我创建了一个新的IHttpModule,它使用一个应用程序变量来维护一个字典,该字典将用户ID映射到会话,模式如下 所有这些都很好,但我们还想添加一个组件:登录成功后会显示一个ok/cancel对话框,警告用户如果继续,他们的第一个会话将关闭。如果他们选择取消,那么我们需要中断登录过程,而不通过Forms.Authenticatio

我正在修改ASP.net webforms应用程序(依赖于Forms.authentication)的身份验证系统,以将每个用户限制为单个浏览器会话。为了支持这一点,我创建了一个新的IHttpModule,它使用一个应用程序变量来维护一个字典,该字典将用户ID映射到会话,模式如下

所有这些都很好,但我们还想添加一个组件:登录成功后会显示一个ok/cancel对话框,警告用户如果继续,他们的第一个会话将关闭。如果他们选择取消,那么我们需要中断登录过程,而不通过Forms.Authentication将用户发送到returnUrl集

到目前为止,我一直在尝试将其添加到
loggedIn
事件中,在该事件中捕获并比较sessionId,但是我在这一点发生后停止操作的尝试没有成功——用户被重定向到我的确认对话框之后,没有任何实际触发


因此,问题是:如何在Authentication.Forms的登录过程中插入一个确认对话框?

您可以尝试一些方法-将表单auth设置为ajax调用,然后在客户端处理您的对话框。因此,例如,使用jquery截取登录表单帖子,对登录表单执行ajax帖子,获取json或其他内容,然后在客户端弹出带有重定向的对话框。

安全复杂性排除了任何类型的ajax截取-before-the-postback-and-deal-with-it-before-the-Forms.Authentication方法。由于似乎没有其他办法可以中断进程,我们决定跳过让当前用户保持登录的选项。