为什么 Response.Redirect("Pagename.aspx") 不起作用
我有一个应用程序,成功登录后用户将被重定向到 Home.aspx。 现在,如果我尝试 Response.Redirect("Home.aspx") 它不起作用,但如果我尝试 FormsAuthentication.RedirectFromLoginPage(TextBox1.Text, false);..其工作。 现在我的问题是为什么 Response.Redirect() 不起作用? 我知道 FormsAuthentication.RedirectFromLoginPage 所做的不仅仅是登录,它还设置 cookie,并且还重定向到登录页面,但为什么 Redirct() 不起作用? web.config:
<authentication mode="Forms">
<forms loginUrl="LogIn.aspx" defaultUrl="Home.aspx" path="/"></forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
有人可以帮忙吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你已经差不多有了答案了。
Response.Redirect 不会设置身份验证 cookie,因此当加载 Home.aspx 时,它会失败身份验证并将您重定向回登录页面。
要使用response.redirect,您必须自己管理cookie,示例来自 https://web.archive.org/web/20210513002246/https://www.4guysfromrolla.com/webtech/110701-1.3.shtml 是:
< strong>编辑:
要回答评论中的问题,如果您将 true 作为第二个参数传递给 RedirectFromLoginPage,则 cookie 将设置为永不过期,并且您无需再次登录。
You already have the answer pretty much.
Response.Redirect does not set the authentication cookie so when Home.aspx is loading it fails authentication and will redirect you back to the login page.
To use response.redirect, you will have to manage the cookie yourself, an example from https://web.archive.org/web/20210513002246/https://www.4guysfromrolla.com/webtech/110701-1.3.shtml is:
EDIT:
To answer the question in your comment, if you pass true as the second parameter to RedirectFromLoginPage then the cookie will be set to never expire, and you won't need to login again.