首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ASP.NET 2.0 WebForms中使用UrlRewrite时如何优雅地处理ReturnUrl

在ASP.NET 2.0 WebForms中使用UrlRewrite时,为了优雅地处理ReturnUrl,可以采用以下方法:

  1. 在UrlRewrite模块中添加一个条件,以检查请求中是否存在ReturnUrl参数。
  2. 如果存在ReturnUrl参数,则将其值存储在会话状态中。
  3. 在目标页面中,从会话状态中检索ReturnUrl参数的值,并将其用作重定向的目标。

以下是一个示例代码:

  1. 在web.config文件中添加UrlRewrite模块的配置:
代码语言:xml<configuration>
复制
 <system.webServer>
   <rewrite>
     <rules>
        <rule name="UrlRewrite" stopProcessing="true">
         <match url="^(.*)$" />
          <conditions>
            <add input="{QUERY_STRING}" pattern="ReturnUrl=(.*)" />
          </conditions>
         <action type="Redirect" url="{C:1}" appendQueryString="false" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
  1. 在Global.asax文件中添加以下代码:
代码语言:csharp
复制
protected void Application_BeginRequest(object sender, EventArgs e)
{
    HttpContext context = HttpContext.Current;
    HttpRequest request = context.Request;

    if (request.QueryString["ReturnUrl"] != null)
    {
        context.Session["ReturnUrl"] = request.QueryString["ReturnUrl"];
    }
}
  1. 在目标页面中添加以下代码:
代码语言:csharp
复制
protected void Page_Load(object sender, EventArgs e)
{
    if (Session["ReturnUrl"] != null)
    {
        Response.Redirect(Session["ReturnUrl"].ToString(), false);
        Session.Remove("ReturnUrl");
    }
}

通过这种方法,可以在ASP.NET 2.0 WebForms中使用UrlRewrite时优雅地处理ReturnUrl参数。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

正式开始学习ASP.NET Core 6 Razor Pages 介绍

然后配置新项目的过程,选择我们需要的.NET 版本,这里我们选择使用.NET 6的版本,然后在其中创建项目的位置,然后单击“ 创建”按钮。...ASP.NET Webforms与Razor Pages ASP.NET Core Razor Pages框架是一种新技术,可以通过清晰分离关注点来更快,更高效构建以页面为中心的Web应用程序。...Razor Pages是.NET Core 2.0引入的。它轻巧,灵活,并为开发人员提供了对呈现的HTML的完全控制。...某些方面, Razor Pages 类似于经典的ASP.NET Webforms框架。ASP.NET Webforms,我们有一个ASPX页和一个代码隐藏类。...一些ASP.NET Core Web应用程序,也可以将两种模式(即ASP.NET Core MVC和Razor Pages)组合在一起。

3.7K10

ASP.NET AJAX UpdatePanel 控件实现剖析

那这个控件是如何实现这种局部刷新的哪,透过其实现机制我们可以更清楚其优缺点,便于我们确定其使用场合。本文将重点阐述ASP.NET AJAX控件UpdatePanel的实现机制。 1....ASP.NET AJAX 简介 ASP.NET AJAX是微软ASP.NET 2.0之上对AJAX技术的一个封装,为Web应用程序提供完整的AJAX解决方案。...部分更新使得用户可以用传统的ASP.NET 2.0应用程序的方式来搭建AJAX应用,具体就是使用UpdatePanel控件来实现无闪烁页面更新。...这是如何实现的哪? 3. ASP.NET AJAX部分呈现剖析 3.1 先从客户端讲起 看一下上面的示例代码客户端的HTML代码, 这里只列出核心部分,其他全部隐去。...先了解一下ScriptManager控件服务器端的处理: - OnInit:Init事件,ScriptManager控件会注册页面的InitComplete, PreRenderComplete以及

6.8K100
  • C#进阶-ASP.NET实现可以缩放和旋转的图片预览页

    本文详细介绍了如何ASP.NET WebForms实现一个功能丰富的图片预览页面。通过结合HTML、CSS和JavaScript,用户可以方便对图片进行放大、缩小以及旋转操作。...通过这个项目,读者可以学会如何在Web应用动态处理图片,提高用户交互体验。一、实现思路现代Web应用,用户对图片的操作需求日益增加,尤其是图片展示能够方便进行放大、缩小以及旋转等操作。...创建ASP.NET页面首先,我们需要创建一个ASP.NET WebForms页面。Visual Studio,右键点击你的项目,选择添加 -> 新建项。...浏览器访问该页面,确保所有按钮功能正常工作。如果需要,可以根据需求进一步调整样式或功能。通过这些步骤,你将创建一个ASP.NET WebForms页面,用户可以在其中放大、缩小和旋转图片。...这种方式不仅简单易用,而且可以满足大多数Web应用对图片展示的基本需求。特别是通过JavaScript的动态操作,使得页面响应用户交互更加灵活和高效。

    18410

    ASP.NET MVC 随想录——探索ASP.NET Identity 身份验证和基于角色的授权,中级篇

    那么本篇文章,我将继续ASP.NET Identity 之旅,向您展示如何运用ASP.NET Identity 进行身份验证(Authentication)以及联合ASP.NET MVC 基于角色的授权...进行注册,当请求经过ASP.NET Pipeline,由ASP.NET Runtime 触发它,该事件,它会验证并解析该Cookie为对应的用户对象,它是一个实现了 IPrincipal接口的对象...这是一个典型Middleware中间件使用场景,说白了就是去处理Http请求并将数据存储到OWIN环境字典中进行传递。...3.使用Authorize特性进行授权 ASP.NET Identity已经集成到了ASP.NET FrameworkASP.NET MVC ,我们可以使用Authorize 特性进行授权,如下代码所示...最后,重定向到ReturnUrl: return Redirect(returnUrl); 使用角色进行授权 在前一小节使用了Authorize 特性对指定区域进行受限访问,只有被身份验证通过后才能继续访问

    3.5K60

    ASP.NET Core 2.2使用IIS部署要注意的路径问题

    ASP.NET Core 2.2 推出已经有一段时间了,其中有个新功能,能够使用新的AspNetCoreModuleV2并且IIS上使用InProcess模式部署,以大幅提高性能。...这几天Azure App Service终于完成了这个新版模块的部署,我第一间将我的博客配置到新模块上,结果爆了。我们来看看原因和解决方式。...而ASP.NET Core 2.2里新增了InProcess模式,可以IIS自己的w3wp进程跑你的应用。这个InProcess的In也就是In了w3wp里的意思。...其他注意事项 如果你VS里使用IIS去debug,比如这样设置的话: ?...ASP.NET Core 2.2 以后,再也不能想当然认为开发ASP.NET Core 用不用IIS都无所谓了,真的是有些东西IIS和Kestrel下行为不一致,因此推荐大家如果生产环境使用IIS

    2.9K30

    asp.net与asp的session共享 及 asp的请求拦截

    asp.net 与 asp 的session是无法直接共享的(底层的处理dll也不一样),要想互通session,只能用变通的办法: 一、asp.net -> asp 的session传递 a) 建一个类似...就有值了 b) 建一个asp.net页面,把需要传递的值,以参数形式提交到 SessionHanler.asp  (POST或GET方式都行),参考代码: using System; namespace...三、拦截asp请求 对于现有的asp项目,不修改其asp源代码的前提下,如果需要对http请求加以拦截(例如:把拦截到的请求参数做些处理,再转发到其它子系统。...web.config修改配置 <?xml version="1.0" encoding="UTF-8"?...IIS设置里,允许发送详细错误到客户端 这样,asp代码出错,就会显示详细信息了

    7.2K70

    IdentityServer Topics(5)- 使用第三方登录

    ASP.NET Core有一个灵活的方式来处理外部认证。 这包括几个步骤。 如果您使用的是ASP.NET Identity,则许多底层技术细节对您而言都是隐藏的。...建议您还阅读Microsoft文档并查看ASP.NET Identity快速入门源码。 添加外部认证处理程序 与外部提供者交互所需的协议实现被封装在一个认证处理程序。...ASP.NET Core提供的OpenID Connect身份验证处理程序利用了该协议的这一功能,这就是它如何实现上述的returnUrl功能。...OpenID Connect身份验证处理程序的确提供了一个可扩展点,用于将状态存储服务器,而不是在请求URL。...要使用IdentityServer提供的安全数据格式实现,只需配置DIIServiceCollection上调用AddOidcStateDataFormatterCache扩展方法即可。

    2.9K30

    ASP.NET MVC 随想录—— 使用ASP.NET Identity实现基于声明的授权,高级篇

    本文中,将为大家介绍ASP.NET Identity 的高级功能,它支持声明式并且还可以灵活的与ASP.NET MVC 授权结合使用,同时,它还支持使用第三方来实现身份验证。...最简单的是使用Role 声明来对Action 受限访问,这我们已经很熟悉了,因为ASP.NET Identity 已经很好的集成到了ASP.NET 平台中了,当使用ASP.NET Identity ,...基于声明的授权 在前一个例子证明了如何使用声明来授权,但是这有点不直接因为我基于声明来产生角色然后再基于新的角色来授权。...小节 在这篇文章,我为大家介绍了ASP.NET Identity 支持的一些高级功能,并解释了Claim是如何运行以及怎样创建灵活的授权访问。...夜生人静,泡一壶茶,拿上一本书,细细品读,或许会有别样的精彩正等我们。

    2.3K80

    .net的认证(authentication)与授权(authorization)

    用Membership/Role做过asp.net开发的朋友们,看到这二个接口的定义,应该会觉得很眼熟,想想我们Asp.Net页面如何判断用户是否登录以及角色的?...Winform的问题解决了,再来考虑一下Webform,当然,你可以直接使用从Asp.Net2.0就支持的membership/role机制,但membership/role默认只支持sqlserver...其实...就算不用membership/role,上面提到的这二个接口仍然是可以使用的,但有一个问题:winform,IPrincipal接口的实例可以一直存储在内存(直到程序退出),所以其它窗口就能继续访问它...asp.net搞出一个上下文Context的概念,一个webApplication,虽然http协议本身是无状态的,但是每个aspx页面被请求,总会附带一个HttpContext上下文,可以用它来找回一些前世的记忆...顺便再回忆一下Asp.Net的页面生命周期,每个AspX页面在请求认证,都会触发Application_AuthenticateRequest事件,而这个事件是定义Global.ascx的,所以可以从这个入手

    1.7K100

    QQ互联OAuth2.0 .NET SDK 发布以及网站QQ登陆示例代码

    QQ登录OAuth2.0采用OAuth2.0标准协议来进行用户身份验证和获取用户授权,相对于之前的OAuth1.0协议,其认证流程更简单和安全。具体参考文档 :【QQ登录】OAuth2.0开发文档。...今天这篇文章主要介绍使用.NET SDK实施QQ登陆功能。...)        {            this.Session[RETURNURL] = returnUrl;            var context = new QzoneContext...演示,直接保存在全局变量.真实情况需要网站自己处理             Session["requeststate"] = state;                       Response.Redirect.../ 项目示例:http://www.win8charm.com/ SDK 在线文档:http://help.win8charm.com/ QQ群:80767552 注:众人拾柴火焰高,欢迎各位反馈使用

    2.4K70

    MVC演化史

    使用Classic MVC的时候,如何处理背景色变红的逻辑呢?有两个选择: Model触发一个特殊事件,View收到后完成相关逻辑的处理。...View判断音量临界值,达到后完成相关逻辑的处理。但我们前面说过,View是不容易测试的,应该尽可能减少逻辑处理,所以这样的味道同样不好。...Web MVP Desktop的时代,微软通过WinForms实现MVP,把组件化编程发挥到了极致,大大提升了开发效率,随着Web的兴起,微软希望延续这样的编程模式,所以使用WebForms实现了Web...WebForms的优点和缺点都很突出,篇幅所限,具体的描述大家可以参考下面链接: 为WebForms说几句话,以及一些ASP.NET开发上的经验(1) 为WebForms说几句话,以及一些ASP.NET...开发上的经验(2) 为WebForms说几句话,以及一些ASP.NET开发上的经验(3) 注:微软推出了ASP.NET MVC向Web MVC靠拢,似乎要两手抓两手都要硬。

    66620

    .NET Core 学习资料精选:入门

    ASP.NET Core 如何注入同一个接口的多个实现 案例1:使用nlog,想根据需要使用不同的配置文件Nlog.config 写日志,就可以使用文章中介绍的 Factory 命名注入方案来实现...案例2:使用分布式缓存 IDistributedCache ,想根据需要在一个项目中同时使用redis和sqlserver ASP.NET Core 多个接口对应同一个实现的正确姿势 ASP.NET...的使用 AutoFac三种注入方式:按类型、按名称、按键 Asp.Net Core 2.0 之旅---AutoFacIOC容器的使用教程 Asp.Net Core 2.0 之旅---AutoFac仓储泛型的依赖注入...session ASP.NET Core 使用Redis存储Session #、cookie ASP.NET Core SameSite 设置引起 Cookie QQ 浏览器不起作用 [github...Core HttpClient的各种用法、生命周期管理 DotNetCore 使用Http请求及基于 Polly 的处理故障 DotNetCore HttpClientFactory 类源码分析

    3.8K20

    Web开发在过去20多年时间里如何改变了我

    20年前,我从HTML和JavaScript开始,再到使用VBScript的经典ASP。 2001年,我开始陶醉于ASP.NET和VB.NET,并用到了产品,直到2006年底才不再这么干。...2007年年底,我开始使用C#编写ASP.NET。HTML和JavaScript仍然参与其中,但多多少少被封装在第三方控件,并且jQuery当时是JavaScript的别名。...(好吧,我们确实在2005年搞回了一个很酷的SPA,但我们没有想过如何用它创建一个框架。) NodeJS通过服务器上使用JavaScript再次改变了世界。...这也就是说使用无状态的web工作,而不是试图修复它。使用Request和Response比传统的ASP.NET MVC工作起来更直接,比ASP.NET WebForms甚至就更直接得多。...我用JavaScript编写代码大概有20年间,但我从来没有单个项目中写过这么多的JavaScript代码。之后,在过去几年时间里我开始使用AngularJS。

    1.5K60
    领券