Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# 如何重定向到登录后输入的URL_C#_Asp.net_Http Redirect - Fatal编程技术网

C# 如何重定向到登录后输入的URL

C# 如何重定向到登录后输入的URL,c#,asp.net,http-redirect,C#,Asp.net,Http Redirect,我在一个基于ASP.NET和C#的WEB项目中工作。这不是一个新项目,我只是在修复一些bug并进行一些更新 该网站的工作原理类似于,如果您未登录并根据网站编写url,它会将您重定向到登录页面。然后,如果您成功登录,它会将您重定向到打开的页面 例如,假设“opening.aspx”是网站的开始页面,“vendors.aspx”是网站中的另一个页面。如果将“…/projectname/vendors.aspx”写入浏览器,则会将您重定向到“…/projectname/login.aspx”,然后在登

我在一个基于ASP.NET和C#的WEB项目中工作。这不是一个新项目,我只是在修复一些bug并进行一些更新

该网站的工作原理类似于,如果您未登录并根据网站编写url,它会将您重定向到登录页面。然后,如果您成功登录,它会将您重定向到打开的页面

例如,假设“opening.aspx”是网站的开始页面,“vendors.aspx”是网站中的另一个页面。如果将“…/projectname/vendors.aspx”写入浏览器,则会将您重定向到“…/projectname/login.aspx”,然后在登录后将您重定向到“…/projectname/opening.aspx”

现在,我的目标是在成功登录后将用户重定向到他编写的url,在本例中为“…/projectname/vendors.aspx”。我编写了获取上一页的代码,登录后将用户重定向到该页。但是,我无法检测到用户第一次尝试进入的页面。我不确定该项目是否将用户发送到登录页面,其中包含以前的程序员编写的一些代码,或者这是否是asp.net关于默认页面的自动内容。调试时,我始终将请求的页面视为登录页面,即使我将其他页面url写入浏览器

我要找的是一个地方,在那里请求的页面被更改为登录页面,而不是我写的url。这是自动生成的还是应该在代码中查找?如果我应该在代码中查找它,应该在哪里查找


注意:该项目基于三层体系结构,具有WEB、总线、DAL和COM层,网页在每个页面中使用用户控件,而不是登录和默认值。

通常,当asp.net重定向时,它会将请求的页面放入ReturnUrl querystring参数中的url中。你应该可以做一些像

if (Request.QueryString["ReturnUrl"] != null)
    Response.Redirect(Request.QueryString["ReturnUrl"]);

如果您需要做一些特殊的事情,您可以将
ReturnUrl
中的原始页面存储在会话或数据库中,然后在打开页面后重定向,或者不重定向。

我认为当用户登录保存在cookie中的用户详细信息时,您应该使用cookies和seision


下一次当用户输入url时,您可以在该页面的母版页上检查cookies是否可用(如果详细信息可用),然后选择当前url页面,否则首先在登录页面上重定向,谢谢您的回答。现在,我有了一个类似“BasePage”的类,每个页面都继承它。因此,我认为当我输入一个URL时,该类的Page_Init中的Request.QueryString[“ReturnUrl”]应该返回我编写的URL。但是,它返回null。你知道还有什么地方可以检查它吗?很可能只有在登录页面上,所以你需要知道如何处理它。由于听起来像是在执行多个重定向,因此需要将原始ReturnUrl值存储在会话状态或查询字符串中的某个位置。我猜你有点像
FormsAuthentication.RedirectFromLoginPage
,如果您不能使用会话状态,只需执行类似于
Response.Redirect(“Opening.aspx?Source=“+HttpUtility.UrlEncode(Request.QueryString[“ReturnUrl”])的操作,您需要自己处理此问题。