【发布时间】:2023-03-15 19:56:01
【问题描述】:
首先,我应该提到我对 C# 和 ASP.NET 4.0 还很陌生。这个问题的解决方案可能是基本的,所以不要犹豫,问一些基本的问题。
我继承了一个 ASP.NET 4.0 应用程序,该应用程序由于 <page enableViewStateMac="false">(不是我的错)而未能通过我们的自动安全测试。当然,我打开了它。那时出现了一种非常具体的行为模式:
1) 我可以导航到应用程序登录页面
2) 尝试单击离开登录页面的任何链接会导致“视图状态 MAC 验证失败...”错误。
2a) 例外情况是,单击将我带到登录页面(我已经在的页面)的链接可以正常工作
我应该提到,通过 Response.Redirect(...) 导航到其他 ASP。如果我直接在导航栏中输入网址(http://dummyhost.com:12345/Enroll.aspx 而不是http://dummyhost.com:12345/LandingPage.aspx 然后点击注册),我可以成功导航到一个页面。
在母版页的Page_Init()方法中,我是这样设置的:
Page.ViewStateUserKey = Session.SessionID;
如果我注释掉这一行,我可以打开 MAC 并且应用程序非常满意。任何人都可以阐明发生了什么吗?
【问题讨论】:
-
这是发生在 Web 服务器集群上,还是在本地运行时也会发生?
标签: c# asp.net validation webforms