如果会话无效,则重定向

时间:2013-10-22 18:54:41

标签: asp.net redirect session-state response.redirect

我正在构建一个asp.net Web应用程序,允许用户管理他们的个人帐户信息。用户将拥有一个Web用户帐户,但在某些情况下,它可能与不同商店位置的多个帐户相关联。因此,为了让用户管理他们的帐户,我首先需要他们选择他们想要管理帐户的位置。

此应用程序是在较大的网站中运行的类库,它不定义整个网站。我有一个名为GetCurrentStore()的集中式方法,如果Session中存在选择,它将返回商店。如果未选择一个,Response.Redirect([商店选择页面URL],真实)是处理获取一个的最佳方式吗?我知道这种方法会引发异常,因此它是一种有点昂贵的机制,但我不确定我是否知道任何会阻止进一步处理响应的替代方法。

1 个答案:

答案 0 :(得分:1)

  

是Response.Redirect([Store Selection Page URL],true)处理获取一个的最佳方法吗?

“最佳”在某种程度上是主观的,并且非常依赖于背景,但有些观察结果:

  • 通过从类库中访问Session,可以增加耦合(需要在HTTP请求的上下文中调用它,除了其他不良特性之外,还会使其不太可测试)。我将获取UI层中当前商店位置的名称或ID,并将其传递给类库。

  • 如果您需要将用户重定向到另一个页面,则抛出异常的开销可能微不足道。但同样,类库可能不是最好的地方:您应该检查当前商店位置是否在UI层中的Session中,并在那里进行重定向。