小编Jay*_*Jay的帖子

会话状态在此上下文中不可用 - 在Global.asax中

我得到的'会话状态在此上下文中不可用'错误.

在此输入图像描述

该错误嵌套在Global.asax文件中的许多方法的sender参数中:

  • 的Application_BeginRequest
  • Application_AuthenticateRequest
  • 在session_start
  • 应用程序错误

错误发生在第一页加载(以及之后的所有页面加载).

我在项目中添加了一个全新的空页WebForm1.aspx,并将其作为我的起始页面.

你认为空页上什么都不会出错.在加载空白页面时,根据我的意见,没有执行我的代码.但我仍然得到会话状态错误.

我的项目完全正常.没有显示错误页面.任何时候都没有不正确的行为.

但是这个会话错误出现在我当前项目的sender参数中的事实让我感到困惑.在空白的新项目中不会生成此错误.

在我当前的项目中可能导致此错误的原因是什么?

如何查找错误发生的位置?我不能设置在ASP.NET代码的断点引擎盖下.或者我可以吗?

这是我的会话配置:

<pages enableSessionState="true" />
<sessionState mode="InProc" cookieless="false" timeout="20" />
Run Code Online (Sandbox Code Playgroud)

更新:

我刚刚发现一个全新的空白项目在发送者对象中也有这个错误.它在Application_BeginRequest和Application_AuthenticateRequest方法中可见.但是空白项目没有生成Application_Error事件,就像我的其他项目一样.

session state global-asax

11
推荐指数
1
解决办法
2万
查看次数

VueJS:为什么在"输入"事件处理程序中触发"输入"事件?

我正在学习VueJS.我正在弄清楚他们的货币验证示例代码.

Vue.component('currency-input', {
  template: `
    <span>
      $
      <input
        ref="input"
        v-bind:value="value"
        v-on:input="updateValue($event.target.value)">
    </span>
  `,
  props: ['value'],
  methods: {
    // Instead of updating the value directly, this
    // method is used to format and place constraints
    // on the input's value
    updateValue: function (value) {
      var formattedValue = value
        // Remove whitespace on either side
        .trim()
        // Shorten to 2 decimal places
        .slice(
          0,
          value.indexOf('.') === -1
            ? value.length
            : value.indexOf('.') + 3
        )
      // If the value was not …
Run Code Online (Sandbox Code Playgroud)

emit vue.js

8
推荐指数
1
解决办法
1万
查看次数

如何在 C# / .NET 中的服务器端验证 Google Identity Service (GIS) 访问令牌?

我正在从旧的 Google 登录库迁移到新的 Google Identity Services (GIS) 库。这是强制性的,因为从 2023 年 3 月起旧的将不再使用。

\n

之前,我做了(为了清晰起见,进行了简化):

\n
<script src="https://apis.google.com/js/api:client.js"></script>\ngapi.load();\nvar auth2 = gapi.auth2.init();\nauth2.attachClickHandler();\nonGoogleSignIn(googleUser); // attachClickHandler\'s callback\nvar profile      = googleUser.getBasicProfile(); // profile info accessible\nvar authResponse = googleUser.getAuthResponse(); // auth response accessible\nvar accessToken  = authResponse.id_token; // get actual access token\n
Run Code Online (Sandbox Code Playgroud)\n

现在,我正在尝试(为了清楚起见,进行了简化):

\n
<script src="https://accounts.google.com/gsi/client"></script>\nvar gisClient = google.accounts.oauth2.initTokenClient();\ngisClient.requestAccessToken();\ncallback(); // initTokenClient\'s callback\nvar accessToken = response.access_token; // get access token in callback\n
Run Code Online (Sandbox Code Playgroud)\n

使用旧的谷歌登录库,我验证了访问令牌服务器端,如下所示:

\n
Payload payload\xc2\xa0=\xc2\xa0await\xc2\xa0GoogleJsonWebSignature.ValidateAsync(accessToken);\n
Run Code Online (Sandbox Code Playgroud)\n

这还会在有效负载中返回用户的电子邮件和姓名。

\n

我从 GIS 获取的访问令牌比从 GAPI 获取的旧访问令牌短得多。

\n

在线令牌调试器 …

c# jwt google-oauth json-web-signature

8
推荐指数
1
解决办法
2807
查看次数

如何像 KeepVid (2017) 一样获取 YouTube 视频下载地址?

我正在编写一个 youtube 视频下载器。让我们以这个视频为例:

https://www.youtube.com/watch?v=_UbDeqPdUek

在研究如何获取 YouTube 视频的 url 时,我在 stackoverflow 上发现了一段代码:

(function() {
    return ytplayer.config.args.adaptive_fmts
        .split(',')
        .map(item => item
            .split('&')
            .reduce((prev, curr) => (curr = curr.split('='),
                Object.assign(prev, { [curr[0]]: decodeURIComponent(curr[1]) })
            ), {})
        )
        .reduce((prev, curr) => Object.assign(prev, {
            [curr.quality_label || curr.type]: curr
        }), {});
})();
Run Code Online (Sandbox Code Playgroud)

在上面的 youtube url 上的 chrome dev 控制台中执行此操作,您将看到它会喷出一个包含信息的对象,包括视频 url。

'720p' 属性中的 'url' 属性如下:

https://r2---sn-5hne6nlk.googlevideo.com/videoplayback?mn=sn-5hne6nlk&ip=92.111.133.132&mm=31&sparams=clen%2Cdur%2Cei%2Cgir%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Ckeepalive%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Crequiressl%2Csource%2Cexpire&itag=247&mime=video%2Fwebm&dur=250.800&id=o-AEgCrHyMCCJXgH39WmxsSwNs01bFa3BDVFEIzgAyrthL&mv=m&pl=18&mt=1500667926&requiressl=yes&ms=au&expire=1500689653&initcwndbps=1997500&keepalive=yes&key=yt6&ei=lWByWcWwI4Th1gKa2aDoCg&signature=596BF2603202A1BC60493C8263928FB365A14B2A.92D082149A543786BA5C29A547A8F78DE9346F95&source=youtube&clen=47937010&gir=yes&ipbits=0&lmt=1449652247373936
Run Code Online (Sandbox Code Playgroud)

当我将此 url 粘贴到 chrome 选项卡时,它开始在准系统窗口中播放视频。您可以使用此链接下载视频。问题是,视频没有声音!

当我使用keepvid下载视频时,它会在 720p 下载按钮上显示以下网址:

https://r17---sn-o097znll.googlevideo.com/videoplayback?lmt=1470986968011625&mt=1500670510&dur=250.891&itag=22&ipbits=0&ms=au&sparams=dur%2Cei%2Cid%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cexpire&ei=pWpyWZ75BZyf1gLf6rXQCA&id=o-AMPIR2-sd--NM8eDZyPKMqOu1B5qqSkBd1brw-H44ARx&pl=24&mn=sn-o097znll&mm=31&source=youtube&signature=6F5B6D2EFCF5CD600D9B12C984A19DBA58AC6A7E.CC2EE5E63809D4C9A07BB2C194328C7825015976&ratebypass=yes&mv=m&mime=video%2Fmp4&ip=159.253.144.86&requiressl=yes&key=yt6&expire=1500692229&title=Cubs+Meet+Adult+Tiger+For+The+First+Time+-+Tigers+About+The+House+-+BBC
Run Code Online (Sandbox Code Playgroud)

两个 url(和查询参数)之间的差异很小。但事实是,keepvid 的网址比我的好:

  1. 它将文件作为下载文件展开,而不是在浏览器中播放。
  2. 它有声音。

为方便起见,这里是这些 url 的 url 解码、格式化版本,参数按字母顺序排列。 …

javascript youtube video download

5
推荐指数
0
解决办法
8347
查看次数

如何在不依赖HtmlAgilityPack的情况下使用.NET Fizzler?

Fizzler是HTML文档的W3C选择器库.Nuget提供两个版本:一个取决于HtmlAgilityPack,一个不依赖于HtmlAgilityPack.

我只能找到依赖于HtmlAgilityPack项目的文档和示例代码.我想利用没有这种依赖关系的那个,因为我总是希望减少我的依赖关系并保持简单.

在哪里可以找到不依赖于HtmlAgilityPack的Fizzler项目的文档/示例代码?

.net fizzler

0
推荐指数
1
解决办法
542
查看次数