Silverlight、RIA 和 ASP.Net 会话超时

2023-12-27

我们有一个要求,当 ASP.NET 会话过期并且用户正在使用 Silverlight 插件时,我们希望将用户重定向到登录页面。

因此,场景是,我们有一个运行 ASP.Net 的旧应用程序,所有新模块都位于 Silverlight 中,并且旧应用程序加载 Silverlight 应用程序。这一切都有效:-) 然后,用户离开办公桌并在 ASP.Net 会话超时后返回,但随后尝试在使用 RIA 域服务的 Silverlight 应用程序中继续执行某些操作。由于会话超时,RIA 域服务失败,但它不会因 SessionExpired 异常而失败,也不会因用户/密码无效而失败,它只是因域异常而失败,这与域中抛出的“真实”异常类似模型,因此我们无法确定这次是因为会话过期。

关于如何保持 ASP.Net 会话处于活动状态,有很多答案,我们不想这样做,我们希望会话过期,但我们希望能够在 Silverlight 中优雅地处理它并将用户引导到登录页面。

我们已经做到了这一点,但问题是每当 Silverlight 应用程序中出现异常时,这会将您重定向到登录页面,这不是预期的行为。我们只想在会话过期时进行重定向。

有任何想法吗?


我只是碰巧遇到了同样的问题。我将以下代码添加到 Application_UnhandledException 中:

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
    // redirect to login on exceptions when user is not logged in
    var domainException = e.ExceptionObject as DomainOperationException;
    if (domainException != null && !WebContext.Current.User.IsAuthenticated) 
    { // probably a server-side timeout has occurred.  
        e.Handled = true;
        HtmlPage.Document.Submit(); // redirect to login page
    }
}

每当出现域异常并且用户未登录(我假设用户必须登录才能查看任何页面)时,我会重定向到调用页面,这会导致 ASP.NET 重定向到登录页面。

编辑:当您使用 .aspx 登录表单(我通常使用它来防止未经身份验证的用户下载 Silverlight 代码)时,此解决方案非常有用。如果您使用 Silverlight 注册表单,您可以在这里找到答案https://stackoverflow.com/a/8083744/178620 https://stackoverflow.com/a/8083744/178620.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Silverlight、RIA 和 ASP.Net 会话超时 的相关文章

随机推荐

  • Alamofire 4 Swift 3 参数编码自定义

    我将我的项目更新为 Swift 3 和 Alamofire 4 我使用的是自定义编码 但它更改为其他编码方法 我无法找到替代方案 等效方案 alamoFire request urlString method HTTPMethod post
  • 如何在 Windows 上的 Git Gui 或 Gitk 中撤消硬重置?

    我在 Windows 上使用 Git Gui 和 Gitk 如何撤消过去两小时内的硬重置 是否可以在不使用命令行的情况下从这些应用程序执行此操作 I saw 这个帖子 https stackoverflow com questions 54
  • 一起记录 Firefox/jQuery/CSS 动画的错误吗?

    我正在编写一个使用 jquery 切换 CSS 类的网站 这些类运行 CSS 动画 在 Google Chrome 和 Internet Explorer 9 10 中 一切正常 在 Firefox Aurora 24 和 Firefox
  • 具有多个客户端的 Azure APIM 和 oAuth 2.0

    我发现很难理解如何使用 oAuth 2 0 区分多个客户端应用程序 使用 APIM 我将后端 Web 服务映射到 Azure API 网关服务 URL 我已将 Oauth 2 0 配置为授予类型作为客户端凭据 因为它是服务到服务集成 在 O
  • 如何在 FDT 内导航/更新 Haxe SDK?

    在 OSX 上 FDT 在此处提供 Haxe SDK Applications FDT 5 app Contents FDT5 haxe haxe 2 09 osx 因为它位于 OSX 包内部 所以我无法导航到它 我如何 在首选项中选择它
  • 为什么 splitViewController:collapseSecondaryViewController:ontoPrimaryViewController: 在 iPhone 6 Plus 上没有被调用?

    我实现了子类UISplitViewController在我的应用程序中 iPhone and iPad 当我旋转设备时 会调用标题中提到的方法Landscape to Portrait方向 除非我在 iPhone 6 Plus 上运行该应用
  • Azure PowerShell - 提取 Azure SQL 数据库信息

    我正在寻找一种方法来提取有关 Azure SQL 数据库的特定信息 已用空间 分配空间和最大存储大小 我知道可以从 Azure 门户获取该信息 但我想使用 PowerShell 来提取它 我已设法使用下面的命令提取一点信息 最大存储大小 但
  • 6000端口有什么特别之处?

    启动你的 Mac 从以下位置获取基本 Flask 应用程序快速启动页面 http flask pocoo org docs 0 10 quickstart 并将端口更改为 6000 这将为您提供以下内容 from flask import
  • 动态 jQuery 变量名

    我想获取 li ID 属性的值 这将是一个 userID 并将其用作字符串的一部分 我最终将使用该字符串作为变量名称的一部分 我将使用这个变量名来创建一个数组 我了解基础知识 但似乎无法找到 jQuery javascript 的正确组合来
  • 将 JavaMail 与自签名证书结合使用

    我有一个包含以下代码的 servlet System setProperty javax net ssl keyStore getServletContext getRealPath keystore jks System setPrope
  • 获取 PushManager 订阅时出错 - JavaScript

    我有以下代码 用于注册服务工作人员并要求用户允许通知 在用户允许推送通知 其中承诺返回 后 我收到错误serviceWorkerRegistration pushManager getSubscription is null 当我关闭浏览器
  • Rails - 显示索引结果并通过 ajax 显示操作

    我有一个非常简单的 Post 资源 有两个操作 索引和显示 我的模板包含一个侧边栏 其中包含指向之前每篇文章的链接 我希望侧边栏链接显示其内容 即 显示 操作的结果 通过阿贾克斯 我知道有很多出色的 http www alfajango c
  • 如何在数据迁移期间使用 mongoose 设置 UpdatedAt 时间戳

    我正在进行从 MS SQL 到 MongoDB 的数据迁移 我正在使用猫鼬 并在我的架构中将时间戳属性设置为 true timestamps true 然后 我尝试设置createdAt和updatedAt字段的值 插入记录时 create
  • 有没有人使用过 ios-sim 实用程序在模拟器中运行 .app 文件?

    如何通过 Developer50ios sim 的路径 我就这样过去了 有什么问题吗 ios sim launch verbose sdk 5 0 env Developer50 这似乎不起作用 I have Developer Devel
  • 如何将映射嵌入到结构中,使其具有平面 json 表示形式

    为了创建类似表的结构 我在之前的应用程序中以以下格式序列化了行数据 key1 key2 15 04 1 3 15 05 1 2 17 08 0 8 现在我正在尝试用 Go 重写它 以便通过实践经验来学习该语言 在 Go 中 可以通过将两个结
  • PDFBox 2.0.4:XFA 到文本错误

    我在尝试将 PDF XFA 转换为字符串时收到以下错误 当我从PDFBox 1 8 12 to PDFBox 2 0 4 这是日志 Mar 09 2017 7 16 07 AM org apache pdfbox pdfparser Bas
  • 如何防止Grails在删除父级时不删除子级?

    我的作者和书籍之间有一对多的关系 一个作者有很多本书 我有这样的域类 作者 groovy class Author String authorName String authorAddress String authorCNIC stati
  • Chart.js 加载全新数据

    该API用于chart js http www chartjs org docs line chart允许编辑加载到其中的数据集的点 例如 update 在 Chart 实例上调用 update 将重新渲染图表 任何更新的值 允许您编辑多个
  • ReactiveSwift 简单示例

    我读过文档 https github com ReactiveCocoa ReactiveSwift 浏览了他们精彩的 Playground 示例 搜索了 S O 并达到了我的程度谷歌 fu http www urbandictionary
  • Silverlight、RIA 和 ASP.Net 会话超时

    我们有一个要求 当 ASP NET 会话过期并且用户正在使用 Silverlight 插件时 我们希望将用户重定向到登录页面 因此 场景是 我们有一个运行 ASP Net 的旧应用程序 所有新模块都位于 Silverlight 中 并且旧应