小编Jus*_*ant的帖子

LogonUser,LOGON32_LOGON_INTERACTIVE和LOGON32_LOGON_NETWORK

当与LogonUser一起使用时,任何人都可以清楚地解释LOGON32__LOGON_INTERACTIVE和LOGON32_LOGON_NETWORK之间的区别吗?

MS文档在这里.

但我不清楚应该使用什么.该场景类似于Windows用户(服务器本地和域用户)登录的telnet服务器 - 我想模拟线程中的用户.他们可能想要删除文件或其他任何东西.

impersonation winapi

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

ASP.net图表控件:隐藏除数据点之外的所有行(轴等)

我正在尝试使用ASP.net上的Microsoft图表控件为仪表板生成迷你图.迷你图通常没有轴或除显示的数据点之外的任何东西.

我成功地关掉了大部分线条,但我遇到了一条横线和一条垂直线,我无法弄清楚如何摆脱.这是我看到的:

实际

这就是我想要的:

期望

这是我正在使用的代码的摘录(减去实际数据):

Chart2.Width = 100;
Chart2.Height = 60;
Chart2.BorderlineWidth = 0;

var name = "Northeast Region";
ChartArea area = new ChartArea(name);
area.AxisX.LabelStyle.Enabled = false;
area.AxisY.LabelStyle.Enabled = false;
area.AxisX.MajorGrid.Enabled = false;
area.AxisY.MajorGrid.Enabled = false;
area.AxisY.MajorTickMark.Enabled = false;
area.AxisY.MinorTickMark.Enabled = false;
area.AxisX.MajorTickMark.Enabled = false;
area.AxisX.MinorTickMark.Enabled = false;
area.BorderWidth = 0;

Chart2.ChartAreas.Add(area);
Series s = new Series(area.Name);
s.ChartType = SeriesChartType.Line;
s.ChartArea = area.Name;
s.Color = System.Drawing.Color.Gray;
foreach (var row in Data)
{
    s.Points.AddXY(row.StartDate, row.Sales);
}
Chart2.Series.Add(s);
Run Code Online (Sandbox Code Playgroud)

我有什么想法我做错了吗?

asp.net microsoft-chart-controls

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

在Chrome开发工具中,如何找到对应于(pre-transpilation)代码行的转换源?

我正在对我的React.js应用程序中的问题进行故障排除,我想查看在Babel编译并由Webpack捆绑后在浏览器中执行的实际javascript.这样做的好方法是什么?

该应用程序使用create-react-app,因此它具有Babel,webpack等的默认CRA配置.源映射正常工作(很好!)但是如果我想查看源映射后面找到正在执行的真实代码怎么办?

我知道我可以/static/js/bundle.js在Chrome Dev Tools的网络窗格中找到,然后使用Cmd + F在该巨大的文件中查找一段代码.我也知道Chrome Dev Tools有一个关闭源映射的选项,但更改持久设置(即使我可以在不重新启动调试的情况下执行此操作,我不确定我可以)似乎没有比Cmd更容易+ F接近上面,特别是因为我必须记得改回来(并重新开始调试?).

相反,我只是在寻找一种在实际生成(转换和捆绑)代码和我的(源映射)代码之间来回切换的方法,而不会中断我的调试工作流程.

这可以在Chrome中使用吗?

javascript google-chrome-devtools source-maps reactjs

6
推荐指数
0
解决办法
283
查看次数

使用TypeScript和webpack在项目之间共享代码

我想在两个TypeScript项目之间共享代码.我不想将共享代码发布到NPM--只是想将共享代码放在一个项目中并在另一个项目中使用它.我正在使用Webpackawesome-ts-loader.当前文件夹结构(简化)如下所示:

/devroot/
  mainProject/
    tsconfig.json
    src/
      shared/
        SomeSharedTypes.ts
  apiProject/
    tsconfig.json
    webpack.config.js
    src/
      UseSomeSharedType.ts
Run Code Online (Sandbox Code Playgroud)

UseSomeSharedType.ts,我希望能够从中导入类型SomeSharedTypes.ts.

我试过这样一个明显的解决方案:

import {SharedType} from '../../mainProject/src/shared/SomeSharedTypes'
Run Code Online (Sandbox Code Playgroud)

但TS编译器给了我这个错误:

TS6059:文件'/devroot/mainProject/src/shared/SomeSharedTypes.ts'不在'rootDir''/ devroot/apiProject'下.'rootDir'应包含所有源文件.

typescript webpack awesome-typescript-loader

6
推荐指数
1
解决办法
1035
查看次数

二进制vs.字符串vs.数字,用于在DynamoDB分区键中存储UUID?

我正在尝试确定对DynamoDB表的分区键使用二进制,数字还是字符串。我的应用程序是React.js / Node.js社交事件管理应用程序,其中存储在DynamoDB中的数据量的一半将用于存储项目和属性与其他项目和属性之间的关系。例如:用户的朋友,活动的参加者等。

因为架构是如此繁琐,并且由于DynamoDB项的最大大小只有400KB,并且出于性能和成本的原因,我担心密钥占用太多空间。就是说,我想使用UUID作为分区键。有众所周知的原因,对于多个节点分发新密钥的分布式无服务器应用程序,他们更喜欢UUID(或类似的熵级别,并且发生碰撞的可能性很小)。

因此,我认为我的选择是:

  1. 使用十六进制编码的UUID(删除破折号后将存储32个字节)
  2. 使用base64(22个字节)编码UUID
  3. 使用z85(20个字节)对UUID进行编码
  4. 对密钥使用二进制类型的属性(16个字节)
  5. 对键使用数字类型的属性(16-18字节吗?)-数字类型只能容纳127位,因此我不得不执行一些技巧,例如剥离版本位,但是对于我的应用程序来说可能还可以。请参阅 在Number类型的DynamoDB属性中可以存储多少位整数数据?有关更多信息。

显然,开发人员的经验需要权衡。使用十六进制字符串最清晰,但最大。编码的字符串较小,但在日志记录,调试等过程中更难处理。Binary和Number比字符串更难,但最小。

我确定我不是第一个考虑这些折衷的人。是否有众所周知的最佳实践或启发式方法来确定应如何在DynamoDB中存储UUID密钥?

如果不是,那么我倾向于使用Binary类型,因为它是最小的存储,并且因为它的本机表示形式(作为base64编码的字符串)可以在人类需要查看和推理键的任何地方使用,包括查询,日志记录,和客户端代码。除了必须从一个转换到/ Buffer如果我使用DocumentClient,我错过了一些问题,在上面的列表中的其他选项之一的二进制类型或优势?

如果有问题,我正计划通过Lambda API进行对DynamoDB的所有访问,因此,即使需要进行转换或编组,也可以,因为我可以在我的API中进行操作。

顺便说一句,这个问题是一个已有 4年历史的问题(DynamoDB中的UUID数据类型)的续集,但是4年是一个快速发展的空间中的一个漫长的时间,因此我认为值得再次提出。

uuid amazon-web-services amazon-dynamodb serverless-framework aws-sdk-js

6
推荐指数
1
解决办法
634
查看次数

如何在特定日期和时间创建“Temporal.Instant”实例?

我\xe2\x80\x99m 与 JavaScript\xe2\x80\x99s提出的新 Temporal API作斗争。我想做的事情应该是直截了当的,但我未能找到令人信服的解决方案。我肯定错过了什么。

\n

任务如下:根据年、月、日、小时和分钟变量实例化 UTC 日期时间的对象表示

\n

我的想法如下:

\n
    \n
  • 我们正在谈论 UTC,所以我需要一个Temporal.Instant;
  • \n
  • new Temporal.Instant()需要以纳秒为单位的时间戳,因此 \xe2\x80\x99 不起作用;
  • \n
  • Temporal.Instant.from()需要一个 ISO 日期时间字符串,这需要我从 \xe2\x80\x94 的五个变量生成格式正确的文本,这是可能的,但有点黑客攻击,有点违背了使用日期时间库的目的;
  • \n
  • Temporal.PlainDateTime.from(){ year, month, day, hour, minute }具有正确的设计,因为它接受像;这样的对象
  • \n
  • 那么我们需要做的就是Instant从中创建一个PlainDateTime. 但这似乎不可能?除了再次通过 \xe2\x80\x94 \xe2\x80\x94 ns\xe2\x80\xa6 中的日期时间字符串或时间戳?
  • \n
\n

这太愚蠢了!这里的用例是非常基本的,但它\xe2\x80\x99(对我来说)根本不明显如何解决它。

\n

我期望能够简单地做类似的事情: Temporal.Instant.from({ year, month, day, hour, minute });

\n

现在我能想到的最好的办法是:Temporal.Instant.from(year + \'-\' + String(month).padStart(2, \'0\') + \'-\' + String(day).padStart(2, \'0\') …

javascript datetime utc ecmascript-temporal

6
推荐指数
1
解决办法
1139
查看次数

使用WinINET为虚拟用户创建强大的HTTP连接

我正在制作一个程序,使用Wininet系列API在Windows上从Internet下载一个简单的文件,因为我想利用它与IE兼容的代理行为.众所周知,目前的IE有几个代理设置:自动检测(WPAD),自动配置(PAC),手动单URL,每个协议的代理服务器,袜子,直接,...对于大多数用户,"直接下载" 工作良好; 但对于某些用户(特别是那些在防火墙/ NAT后面的用户),他们在建立连接时总是需要特殊的代理设置.

编写代码来处理所有这些情况是很痛苦的,所以我希望WinINET InternetOpen (INTERNET_OPEN_TYPE_PRECONFIG)可以帮助我.它适用于大多数用户,但我仍然发现一些用户抱怨连接失败.这些用户可能具有非常特殊的网络环境(例如,需要用户名/密码auth代理)并且直接连接不适用于他们.

有时虚拟用户配置错误,我想让wininet为我尝试"全部"可能的代理设置; 遗憾的是,INTERNET_OPEN_TYPE_PRECONFIG只会尝试用户配置的那个,而不是"每个可能的代理设置".

所以我的问题是,如何使一个程序具有最强大的能力来解决虚拟用户的所有http连接(特别是代理配置)(即,他们不了解如何配置他们的系统)?是否有任何建议的方式来建立HTTP连接而无需处理代理内容?(即,"超级"连接解算器将尝试所有可能的代理设置),或者是否有任何方法告诉WinINET启用其所有代理设置来创建连接?

proxy winapi wininet winhttp

5
推荐指数
1
解决办法
2956
查看次数

将WMD编辑器的预览HTML与服务器端HTML验证对齐(例如,没有嵌入式JavaScript代码)

有许多Stack Overflow问题(例如,白名单,阻止XSS在C#WMD Markdown和服务器端使用WMD控制)关于如何对WMD编辑器生成的Markdown进行服务器端清理,以确保生成的HTML不包含恶意脚本,像这样:

<img onload="alert('haha');" 
   src="http://www.google.com/intl/en_ALL/images/srpr/logo1w.png" />
Run Code Online (Sandbox Code Playgroud)

但我也找不到在客户端插上漏洞的好方法.当然,客户端验证不能替代服务器上的擦除验证,因为任何人都可以伪装成客户端并发布令人讨厌的Markdown.如果你在服务器上清理HTML,攻击者就无法保存坏的HTML,因此以后没有其他人能够看到它并且他们的cookie被盗或被坏脚本劫持的会话.因此,有一个有效的案例可能不值得在WMD预览窗格中强制执行无脚本规则.

但想象一下,攻击者找到了将恶意Markdown放到服务器上的方法(例如,来自其他站点的受感染的源,或者在修复XSS错误之前添加的内容).将markdown转换为HTML时应用的服务器端白名单通常可以防止向用户显示错误的Markdown.但是,如果攻击者可以让某人编辑该页面(例如,通过发布另一个条目,说恶意条目有一个断开的链接并要求某人修复它),那么编辑该页面的任何人都会被劫持.这无疑是一个极端的案例,但它仍然值得防范.

此外,允许客户端预览窗口允许不同于服务器允许的HTML,这可能是一个坏主意.

Stack Overflow团队通过更改WMD来堵塞这个漏洞.他们是如何做到的呢?

[注意:我已经想到了这一点,但它需要一些棘手的JavaScript调试,所以我在这里回答我自己的问题,以帮助其他人可能想要做同样的事情].

javascript xss wmd wmd-editor

5
推荐指数
1
解决办法
511
查看次数

将python对象序列化为python源代码

我有一个python字典,我想序列化为初始化该字典的键和值所需的python源代码。

我在寻找类似的东西json.dumps(),但是输出格式应该是Python,而不是JSON。

我的对象非常简单:这是一本字典,其值是以下值之一:

  1. 内置类型文字(字符串,整数等)
  2. 文字列表

我知道我可以自己构建一个,但是我怀疑有些情况涉及嵌套对象,关键字转义等。因此,我更喜欢使用已经解决了一些问题的现有库。

python serialization json code-generation

5
推荐指数
1
解决办法
943
查看次数

通过ADO.NET检索SET STATISTICS IO和SET STATISTICS TIME值?

通过Management Studio执行T-SQL查询时,我可以使用SET STATISTICS IO ONSET STATISTICS TIME ON捕获统计信息以进行查询调优.

当我使用.NET客户端API执行T-SQL查询而不是使用Mangaement Studio的UI时,如何收集相同的统计信息?

这似乎是一个显而易见的事情,但在搜索MSDN和Google很长一段时间后,我很难过.我发现最接近的是MSDN上的SQL Server提供商统计信息(ADO.NET),但这些统计信息似乎是客户端关于网络连接的统计信息(例如,发送/接收的字节数),从客户端的角度来看,而不是服务器端统计信息我在找.

.net t-sql sql-server ado.net query-tuning

5
推荐指数
1
解决办法
1897
查看次数