ViewStateUserKey + 共享托管 + ViewStateMac 验证失败

2023-12-08

所以,问题很简单,尽管我开始怀疑这是否会得到解答......

我有一个网站,我想在其中使用推荐的 ViewStateUserKey 来保护我的视图状态。

在我的基页(显然继承自 Page)中,我有以下代码:

    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        if (User.Identity.IsAuthenticated)
            base.ViewStateUserKey = Session.SessionID;
    }

在本地主机上运行良好,但是,当我将其上传到托管(由我们本地提供商之一提供的共享托管)时,它会在我进行身份验证后给出传统的“视图状态 MAC 验证失败”错误。如果我注释掉这段代码,它会完美地工作,所以我 1000% 确定这就是原因。

在共享主机上执行视图状态安全的最佳方法是什么?我也已经设置了 ViewStateMac="Enabled" 。是否足够或者建议的解决方法是什么?


从在本地主机上而不是在服务器上播放的那一刻起,在我看来,您的会话存在一些问题,并且会话 ID 在您的服务器上快速更改/过期,比身份验证过期更快。

因此,从用户看到页面到发布页面,会话已过期或在身份验证更改之前发生更改,因此会话 ID 不同,因此您会收到此错误。

其他认为你可以看的是你已经设置了machineKey在 web.config 上。

Update

将您的代码与您编写的斯科特代码进行比较。 Scott 使用用户名,根本不会改变,而你使用 sessionid,正如我所说,它可以改变。

对我来说,以太使用斯科特建议的内容,用户名,以太一些其他也不会改变的值,例如用户的cookie,那不是那么容易改变的。

所以来自斯科特http://www.hanselman.com/blog/ViewStateUserKeyMakesViewStateMoreTamperpressive.aspx

void Page_Init (Object sender, EventArgs e)
{ 
   if (User.Identity.IsAuthenticated)
      ViewStateUserKey = User.Identity.Name;
}

这就是斯科特检查用户是否经过身份验证的原因,因为它获取了他的名字。如果您使用sessionid或用户的cookie,则不需要检查是否经过身份验证。

现在,如果您使用 cookie 在 vi​​ewstateuserkey 上设置它们,那么对于所有不允许 cookie 的用户,并尝试发布任何帖子都会出错。所以想一个像这样的解决方案来处理它们

https://stackoverflow.com/a/2551810/159270

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ViewStateUserKey + 共享托管 + ViewStateMac 验证失败 的相关文章

  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • 未找到 DEADLINE 调度策略

    我想在 C 中实现 DEADLINE 调度策略 我知道该功能已实现Linux 3 14 10我正在使用 Ubuntu 14 04Linux 3 17 0 031700 lowlatency 201410060605 SMP PREEMPT这
  • 并行运行多个任务

    我有一个代理列表 每个代理都会访问不同的站点并从站点中提取所需的数据 目前它一次只做一个 但我希望同时运行 10 20 个任务 这样它就可以一次性从 20 个站点下载 而不是只下载一个 这是我目前正在做的事情 private async T
  • 无法在 CUDA 中找到 1 到 100 数字的简单和?

    我正在研究使用 CUDA 的图像处理算法 在我的算法中 我想使用 CUDA 内核找到图像所有像素的总和 所以我在cuda中制作了内核方法 来测量16位灰度图像的所有像素的总和 但我得到了错误的答案 所以我在cuda中编写了一个简单的程序来查
  • 如何使用T4从一个模板同时生成两个文件?

    我遇到的情况是 我需要生成两个 CSharp 代码文件 它们的代码几乎相同 但方法的输入和输出类型的命名空间不同 事实上 每个文件都针对特定国家 地区 并且类型来自特定国家 地区的 WSDL 我正在围绕服务编写一些包装器 逻辑完全相同 但从
  • 加载 QPixmap 数据的更好方法

    更好的方法来做到这一点 没有QImage QImage image width height QImage Format RGB888 memcpy image bits m frameRGB gt data 0 height width
  • 如何在 C 中链接目标文件?失败并显示“架构 x86_64 的未定义符号”

    因此 我尝试在我的文件 file2 c 中使用另一个 C file1 c 文件中定义的函数 为了做到这一点 我包含了 file1 file1 h 的标头 但是 每当我尝试使用 gcc 编译文件时 我都会收到以下错误 Undefined sy
  • 使用 STL 流时如何格式化我自己的对象?

    我想将我自己的对象输出到 STL 流 但具有自定义格式 我想出了这样的东西 但由于我之前从未使用过 locale 和 imbue 所以我不知道这是否有意义以及如何实现 MyFacet 和operator 所以我的问题是 这是否有意义以及如何
  • 当我尝试传递临时地址作为参数时,它是一个 UB 吗?

    对于以下 C 代码 include
  • 为什么连续抛出 2 个异常不会生成无法访问的代码警告?

    为什么以下代码行不会创建编译器警告 void Main throw new Exception throw new Exception 据我所知 编译器应该通知您无法到达第二个抛出异常 这显然是一个编译器错误 它是在 C 3 0 中引入的
  • 将 AutomationID 与 ListView 结合使用

    我正在尝试将 AutomationId 附加到列表视图中的项目 理想情况下 将项目名称绑定到显示的项目
  • C++网络序列化[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一种将 C 数据包序列化为网络流的解决方案 我在这里看到很多帖子提到人们 ACE 谷歌协议缓
  • 从单应性估计 R/T

    我一直在尝试计算 2 个图像中的特征 然后将这些特征传递回CameraParams R没有运气 特征已成功计算并匹配 但是问题是将它们传递回R t 我明白你必须分解Homography为了使这一点成为可能 我已经使用如下方法完成了 http
  • 为什么 iframe 请求不发送 cookie?

    兄弟部门创建了一个 HTML 文件 该文件实际上是少数 iframe 的支架 每个 iframe 都会调用一个托管在 Web 服务器上的报告 其参数略有不同 调用的报告将向未经身份验证的用户显示登录表单 或向已经过身份验证的用户显示报告内容
  • c++ - <未解析的重载函数类型>

    在我的班级里叫Mat 我想要一个将另一个函数作为参数的函数 现在我有下面 4 个函数 但是在调用 print 时出现错误 第二行给了我一个错误 但我不明白为什么 因为第一行有效 唯一的区别是功能f不是班级成员Mat but f2是 失败的是
  • 查找数组中的多个索引

    假设我有一个像这样的数组 string fruits watermelon apple apple kiwi pear banana 是否有一个内置函数可以让我查询 apple 的所有索引 例如 fruits FindAllIndex ap
  • 如何防止 Lotus Notes 用户转发或复制通过 System.Net.Mail 发送的邮件?

    我想使用 SMTP 客户端 uiing microsft net 以 C 作为编程语言发送电子邮件 但是对于通过SMTP客户端发送的电子邮件 我们是否可以添加 禁止转发 或 禁止复制 等安全功能 我不希望电子邮件的收件人转发或复制电子邮件的
  • 缺少 ASP.NET 5 模板

    我正在遵循此设置教程 https docs asp net en latest tutorials your first aspnet application html create a new asp net 5 project http
  • 使用空的weak_ptr作为参数调用map::count安全吗?

    打电话安全吗map count http www cplusplus com reference map map count on an 未初始化因此为空weak ptr http en cppreference com w cpp mem
  • Adobe Illustrator 中的折线简化如何工作?

    我正在开发一个记录笔划的应用程序 您可以使用定点设备来绘制笔划 在上图中 我绘制了一个笔划 其中包含 453 个数据点 我的目标是大幅减少数据点的数量 同时仍然保持原始笔画的形状 对于那些感兴趣的人 上图笔画的坐标可以作为GitHub 上的

随机推荐

  • ContextMenu 命令绑定到父级和自身

    我正在尝试在具有多个命令绑定的 DataGrid 上创建一个上下文菜单 有些必须绑定到本地 ViewModel 即 Row 的 ViewModel 有些必须绑定到父 ViewModel 到目前为止 我没有运气遵循其他解决方案 我只执行子命令
  • keyup、keydown、keypress 和 input 事件之间有什么区别?

    我一直在尝试理解 JavaScriptkeypress keydown keyup and input事件 但我发现它们很令人困惑 有人可以指出确切的差异吗 我还想知道当用户粘贴一段文本时是否会触发所有这些操作 根据jQuery 文档 Th
  • 在android中的谷歌地图上绘制多个标记

    我是android领域的新手 我写了一个安卓应用1将从网络提供商检索纬度和经度值并将其存储在我的本地服务器 LAMP 中 我还创建了一个 MYSQL DB 表 该表有 3 列 lat lon id 其中包含使用网络提供程序检索的值 lat
  • 为什么即使没有任何类声明也需要原型?

    如果我只是这样做 Ex1 include
  • 为什么我会收到 301 重定向到带有斜杠的文件夹名称?

    请求http localhost SAMPLE CODES backbone mysql reading json websites 被重定向如下 gt Request URL http localhost SAMPLE CODES bac
  • 单选按钮 onclick 不起作用

    我有 3 个单选按钮 将根据单击的按钮显示列表中的某些作业 我曾经使用搜索按钮来运行搜索代码 因此 用户将选择一个单选按钮 然后单击搜索 但现在我已经删除了搜索按钮 我希望单选按钮在单击时调用搜索功能 table tr td td tr t
  • 如何使用 Byte Buddy 更改导入?

    我想更改类的导入 以便它们指向不同的包 Byte Buddy 文档没有提供太多关于如何实现这一目标的信息 这是我到目前为止所拥有的 public class ProxyPlugin implements net bytebuddy buil
  • 限时输入? [复制]

    这个问题在这里已经有答案了 我希望能够做的是使用输入向用户询问问题 例如 print some scenario prompt input You have 10 seconds to choose the correct answer n
  • 使用 fileConfig 在 Python 中配置自定义处理程序

    我正在使用配置文件在 Python 应用程序中配置我的记录器 这是文件 loggers keys root logger root level INFO handlers console handlers keys console file
  • 在 SSRS 中分组?

    我是 SSRS 的新手 数据如下所示 它们都来自同一个数据集 就像将 2 列分组一样 即 WrkCrtId Name 显示在它们之上 我已经尝试了一些方法来做到这一点 但仍然失败 我想知道是否有人可以提供帮助 附注下图显示了 2 组 B3
  • 在.NET 6控制台应用程序中读取appsettings.json文件

    如何从appsettings json NET 6 控制台应用程序中的文件 program cs file public class Program private static ManualResetEvent quitEvent new
  • 如何在 Ant 中从逗号分隔的目录列表创建文件集?

    在 Ant 目标中 我获得一个属性 其中包含要包含在进一步操作 复制 过滤等 中的目录列表 它看起来像这样 directories dir1 dir2 dir3 我需要一种方法将此列表转换为选择的文件集或模式集all这些目录中的文件 我知道
  • 转换错误:需要左值作为赋值的左操作数

    所以我正在尝试使用ether aton 它返回一个struct ether addr 我正在尝试将其放入我的struct ether header eptr 来自 net ethernet h ether shost成员 我试过这个 str
  • swift3 日期到数据,数据到日期转换

    我正在努力将 Objective C 中创建的代码更改为 swift3 我想将下面的代码更改为使用 Objective c 创建的 swift3 代码 Objective c NSDate 到 NSData 代码 NSCalendar ca
  • 如何使用 PDFBox 对动态创建的 PDF 文档进行数字签名?

    对不起 我java很差 我哪里不对的地方请指正 我哪里不好的地方请改进 我正在尝试使用 PDFBox 通过以下程序对动态创建的 pdf 进行数字签名 计划中的任务 i 创建 PDF 模板 ii 更新 ByteRange xref start
  • 如何在构建阶段使用其他小部件的约束和大小

    我想确保涵盖所有情况 父窗口小部件读取 并可能使用 子窗口的大小或约束 子部件读取 并可能使用 父部件的大小或约束 子部件读取 并可能使用 另一个子部件的大小或约束 解决方案似乎是 让构建阶段运行 然后构建我想要从中检索数据的小部件的大小和
  • 本地通知?

    我的应用程序主要是服务器的客户端 实际上没有连接到互联网 它连接到 Polycom 编解码器并管理 2 个端点之间的视频通话 所以我的应用程序可以发送诸如结束通话 调高音量等命令 然而我的问题是这样的 当有来电并且应用程序不在前台时 我需要
  • Next.js Firebase 托管 404 错误(除 index.html 外)

    我构建了一个 nextjs 应用程序npm run build npm run export并使用部署到 firebasefirebase deploy命令 在此之前 我曾经使用过firebase init在我的项目文件夹中 仅使用默认选项
  • 如何将电子邮件建议传递到 Azure AD B2C 注册页面

    有没有办法在自定义策略中建议注册电子邮件 我的一些用户只需要通过邀请电子邮件进行注册 我在文档中看到 https learn microsoft com bs latn ba azure active directory b2c direc
  • ViewStateUserKey + 共享托管 + ViewStateMac 验证失败

    所以 问题很简单 尽管我开始怀疑这是否会得到解答 我有一个网站 我想在其中使用推荐的 ViewStateUserKey 来保护我的视图状态 在我的基页 显然继承自 Page 中 我有以下代码 protected override void