页面重定向期间会话变量值更改。 -Response.Redirect

时间:2018-08-27 11:27:29

标签: c# asp.net

我已经为跟踪器开发了一个登录页面。我已经通过对数据库进行验证来验证用户名和密码。

验证成功后,我已将会话变量设置为用户名,因为在整个会话过程中都需要使用该用户名。但是会话变量在重定向到下一页时会发生变化。

在下一页中检索用户名时,会话变量已更改。该代码粘贴在下面。请帮忙。

登录页面中的代码:

from django.contrib import admin

class SiteMemberAdmin(admin.ModelAdmin):
    model = SiteMember
    add_form = SiteMemberCreationForm
    form = SiteMemberChangeForm


admin.site.register(SiteMember, SiteMemberAdmin)

xxx.aspx中的代码:

if (isValidUser)
{
Session["LoginUserName"] = Name;
Response.Redirect("xxx.aspx",false);
}

///从会话中检索用户时获得不同的值。

1 个答案:

答案 0 :(得分:2)

如果您指定 endResponse: false ,则尽管已将Redirect添加到输出流中,但页面和任何事件的处理仍将继续。这很可能会更改Session


尝试在不使用endResponse: false参数的情况下调用重定向:

Response.Redirect("xxx.aspx");

如果您指定 endResponse: true 或将其完全保留,则重定向后将以无害的ThreadAbortException静默中止页面的处理。 AFAIK,这是进行重定向的正常方法,您需要有充分的理由在重定向后不中止,而且由于页面处理仍在继续,因此您还需要特别注意所有剩余的代码。

相关问题