我在C#中使用Webforms
当用户执行某项操作时,它可能会被重定向到另一个链接,该链接不能正常工作(之前我无法从idh tfs或github回滚项目)
用户在此网站上:
localhost:53145/VistaUsuario.aspx
当用户填写表单并单击“接受”时,后面的代码为:
Session["user"] = txtDominio.Text;
Response.Clear();
Response.Redirect("FormOrden.aspx");
当它执行操作时,它会重定向到添加此参数的同一链接:
localhost:53145/VistaUsuario.aspx?ReturnUrl=%2fFormOrden.aspx
这是“FormOrden.aspx”背后的代码
protected void Page_Load(object sender, EventArgs e)
{
string usuario = (string)Session["user"];
if (usuario != null)
{
this.MostrarDatos();
}
else
{
this.DoSomethingElse();
}
}
如何解决这个问题?
答案 0 :(得分:2)
您的web.config中似乎启用了身份验证。您的会话未经过身份验证,因此任何转到其他页面的尝试都会返回到身份验证页面,该页面恰好是您当前的页面(可能是default.aspx)。
你看到ReturnUrl ="%2fFormOrden.aspx的原因是因为表格身份验证在登录后如何处理重定向。
基本上,您尝试点击需要身份验证且未经过身份验证的页面。表单身份验证将请求重定向到登录页面。登录后,您调用FormsAuthentication到RedirectFromLogin页面,然后转到ReturnUrl中指定的页面返回用户试图去的地方。
完成身份验证工作流程,或关闭web.config中的表单身份验证。