小编si6*_*618的帖子

你见过最糟糕的安全漏洞?

你见过的最严重的安全漏洞是什么?保留细节以保护有罪者可能是一个好主意.

对于它的价值,这里有一个问题,如果你找到一个安全漏洞该怎么办,另一个有一些有用的答案,如果一家公司没有(似乎)回应.

security

413
推荐指数
91
解决办法
7万
查看次数

WiX技巧和提示

我们现在已经使用WiX一段时间了,尽管人们普遍抱怨易用性,但它还是相当不错.我正在寻找的是有用的建议:

  • 设置WiX项目(布局,参考,文件模式)
  • 将WiX集成到解决方案和构建/发布流程中
  • 为新安装和升级配置安装程序
  • 任何好的WiX黑客你都想分享

wix wix3 wix3.5

264
推荐指数
23
解决办法
21万
查看次数

如何判断字符串是否为xml?

我们有一个字符串字段,可以包含XML或纯文本.XML不包含<?xml头,也没有根元素,即格式不正确.

我们需要能够编辑XML数据,清空元素和属性值,只留下它们的名称,所以我需要在编辑之前测试该字符串是否为XML.

目前我正在使用这种方法:

string redact(string eventDetail)
{
    string detail = eventDetail.Trim();
    if (!detail.StartsWith("<") && !detail.EndsWith(">")) return eventDetail;
    ...
Run Code Online (Sandbox Code Playgroud)

有没有更好的办法?

这种方法可能会遗漏任何边缘情况吗?

我很欣赏我可以使用XmlDocument.LoadXml和捕获XmlException,但这感觉像一个昂贵的选项,因为我已经知道很多数据将不是XML.

这是一个XML数据的例子,除了缺少一个根元素(为了节省空间而省略,因为会有很多数据),我们可以假设它是格式良好的:

<TableName FirstField="Foo" SecondField="Bar" /> 
<TableName FirstField="Foo" SecondField="Bar" /> 
...
Run Code Online (Sandbox Code Playgroud)

目前我们只使用基于属性的值,但如果数据变得更复杂,我们将来可能会使用元素.

基于多个评论(谢谢你!)

string redact(string eventDetail)
{
    if (string.IsNullOrEmpty(eventDetail)) return eventDetail; //+1 for unit tests :)
    string detail = eventDetail.Trim();
    if (!detail.StartsWith("<") && !detail.EndsWith(">")) return eventDetail;
    XmlDocument xml = new XmlDocument();
    try
    {
        xml.LoadXml(string.Format("<Root>{0}</Root>", detail));
    }
    catch (XmlException e)
    {
        log.WarnFormat("Data NOT redacted. …
Run Code Online (Sandbox Code Playgroud)

c# xml

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

如何从MSI"文件"表中提取数据(文件计数)

在我们的构建过程中,目前有可能将非基于代码的文件(例如图像文件)添加到我们的Web项目中,但不包含在由WiX构建的MSI安装程序中.

为了帮助防止这种情况,我想在我们的WiX项目的AfterBuild目标中执行以下操作:

  • 获取构建的所有文件的计数(从Web部署项目输出)
  • 获取内置到MSI中的所有文件的计数(来自MSI中的"文件"表)
  • 比较计数和失败构建,如果它们不匹配

如果我启动Orca,我可以很容易地看到File表并计算,但我不知道如何从MSBuild自动执行此操作.是否有一些API或其他机制可以从MSI中获取此信息?

我不介意编写自定义MSBuild任务来提取MSI文件表计数.

windows-installer wix wix3 orca

10
推荐指数
2
解决办法
6340
查看次数

为什么这个jQuery选择器这么慢?

基于测试一个包含~220个元素的页面,其中〜200个是复选框元素,并且每个元素必须查询一个包含~200个项目的数组,我很惊讶地发现输入选择器:

$("input[id$='" + code + "']").each(function() { //...
Run Code Online (Sandbox Code Playgroud)

大约快4-5倍

$("input:checkbox[id$='" + code + "']").each(function() { //...
Run Code Online (Sandbox Code Playgroud)

并且比复选框选择器快大约10倍:

$(":checkbox[id$='" + code + "']").each(function() { //...
Run Code Online (Sandbox Code Playgroud)

还尝试了通用选择器*,它的表现大致相同input.

我很想知道为什么这么大的性能差异?

performance jquery jquery-selectors

9
推荐指数
1
解决办法
2772
查看次数

将彩色控制台输出捕获到WPF应用程序

此问题类似,除了在WPF应用程序中包含的控制台程序产生彩色输出,因此如果我可以捕获颜色和文本,那将是很好的.

这是我的第一个WPF程序,我不知道如何去寻找/修改正确的控件,目前我只是使用一个可以工作但只能捕获纯文本的TextBox.

更新:我尝试使用RichTextBox:

richTextBox.Document.Blocks.Clear();
richTextBox.Document.Blocks.Add(new Paragraph(new Run(process.StandardOutput.ReadToEnd())));
Run Code Online (Sandbox Code Playgroud)

唉它只显示了纯文本.

.net c# wpf console-application wpf-controls

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

如何在回发之前在客户端上调用RequiredFieldValidator

我继承了一些使用div将页面分成标签的代码.在第一页上有许多必需的字段和正则表达式验证器.问题是用户可以切换到另一个选项卡,触发回发并使第一页上的验证器失败,使事情陷入混乱.

我希望能够做的是在用户选择另一个选项卡时在第一页上执行验证,从而防止它们移动到新选项卡,直到第一页有效.

<ul>                        
     <li><a href="#tab1">Tab 1</a> </li>
     <li><a href="#tab2" onclick="return isValid();">Tab 2</a></li> 
     <li><a href="#tab3" onclick="return isValid();">Tab 3</a></li> 
</ul>
Run Code Online (Sandbox Code Playgroud)

哪里isValid需要关闭验证器.

谢谢!

更新: codeka提供的答案非常接近,但是,因为我需要提供href和onclick属性(以避免弄乱显示),即使验证失败,选项卡(锚)仍然会发生.这就是我解决这个问题的方法.免责声明:未来的丑陋代码

<ul>                        
    <li><a id="tab1Tab" href="#tab1" style="display:none"/><a onclick="isValid('tab1');">Tab 1</a></li>
    <li><a id="tab2Tab" href="#tab2" style="display:none"/><a onclick="isValid('tab2');">Tab 2</a></li>
    <li><a id="tab3Tab" href="#tab3" style="display:none"/><a onclick="isValid('tab3');">Tab 3</a></li>
</ul>

function isValid(tab) {
    var valid = Page_ClientValidate();
    var tabId = (valid ? tab : "tab1") + "Tab";
    $("#" + tabId).click();
}
Run Code Online (Sandbox Code Playgroud)

注意使用jQuery实现与click事件的跨浏览器兼容性.这只有在其他选项卡上没有验证器的情况下才有效,根据Thomas的回答,isValid如果有任何补充,我需要使用验证组和额外的逻辑.

asp.net validation

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

WPF多列列表视图的最佳方法

我有一个包含大量数据的ListView(200多个项目),所以为了节省空间,它使用UniformGrid来显示3列而不是1列

<ListView.ItemsPanel>
    <ItemsPanelTemplate>
        <UniformGrid Columns="3" />
    </ItemsPanelTemplate>
</ListView.ItemsPanel>
Run Code Online (Sandbox Code Playgroud)

我还修改了样式,以便每个项目都与顶部对齐

<ListView.Resources>
    <Style TargetType="{x:Type ListView}">
        <Setter Property="ItemContainerStyle">
            <Setter.Value>
                <Style TargetType="ListViewItem">
                    <Setter Property="VerticalContentAlignment" Value="Top"/>
                </Style>
            </Setter.Value>
        </Setter>
    </Style>
</ListView.Resources>
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但是由于显示的数据长度不同,项目组中仍然存在空间浪费,因为大多数数据都适合单行,但偶尔会有一个占用2行或更多行的项目.这意味着当组中只有1行需要额外的空间时,组中的所有行都会占用2行或更多行

替代文字

有谁知道如何解决这个问题,或者可以建议另一种方法来避免统一网格?谢谢!

wpf listview uniformgrid

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

XAML 心跳动画 - 如何确保心跳至少两次

问候,

我想直观地显示后台进程何时工作。此过程定期发生(例如每 30 秒),可能需要 10 毫秒或 1000 毫秒以上才能完成。我正在使用 MVVM-Light 框架,因此创建了一个数据触发器,连接到淡入和淡出的心脏图像上的视图模型属性。

当该过程需要一秒或更长的时间时,我的业余动画技术正在发挥作用,但我也希望它在该过程需要很短的时间(<100ms)时完成完整的心跳(2次重复),否则动画也会结束很快,您无法(从视觉上)看出该过程正在运行。

问题是心脏应该在整个过程中保持跳动,所以我不能只将重复行为设置为 2。XAML 解决方案是首选,但如果需要一些后面的代码,我不会畏缩:)

<Image 
    Height="60" Width="60" Margin="0,6,6,6"
    Name="Heartbeat" Source="/Resources/Heartbeat.png"
    VerticalAlignment="Bottom" HorizontalAlignment="Right" 
    Opacity=".05" Stretch="UniformToFill">
    <Image.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding IsHeartBeating}" Value="True">
                    <DataTrigger.EnterActions>
                        <BeginStoryboard Name="HeartbeatStoryboard">
                            <Storyboard RepeatBehavior="Forever">
                                <DoubleAnimation
                                    Storyboard.TargetProperty="Opacity"
                                    From="0.05" To="0.8" Duration="0:0:0.100">
                                </DoubleAnimation>
                                <DoubleAnimation
                                    Storyboard.TargetProperty="Opacity"
                                    From="0.8" To="0.05" Duration="0:0:0.300">
                                    <DoubleAnimation.EasingFunction>
                                        <PowerEase EasingMode="EaseOut" Power="6" />
                                    </DoubleAnimation.EasingFunction>
                                </DoubleAnimation>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                    <DataTrigger.ExitActions>
                        <StopStoryboard BeginStoryboardName="HeartbeatStoryboard" />
                    </DataTrigger.ExitActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>
Run Code Online (Sandbox Code Playgroud)

如果有人对如何改进心跳动画有任何建议,我愿意接受建议,谢谢!

wpf xaml mvvm-light

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

创建由多列和连续日期分区的序列

我试图弄清楚如何创建一个由多列分区的序列,其中序列必须在另一个(基于日期)列不连续时重置.

问题:医院ADT(入院/出院/转院)事件发生在特定时间点,但我们希望将这些事件转变为具有持续时间(时间跨度)的活动,即我们有开始日期,但没有结束日期,基于下一个适当的ADT事件.我们已在代码中完成此操作,但也希望在SQL中执行此操作以提高性能.例如,找到在ICU中度过超过48小时的患者.

我们希望记录六个不同级别的站点位置:设施,护理点,建筑物,楼层,房间和床.

例:

Stream  Event  Started           Facility    PointOfCare  ...
1       1      2015-01-01 09:05  Hospital-A  ICU           
1       2      2015-01-02 13:10  Hospital-A  WARD-1
2       3      2015-02-10 12:00  Hospital-A  ICU           
2       4      2015-02-11 12:00  Hospital-A  ICU
2       5      2015-02-12 04:30  Hospital-A  WARD-2
Run Code Online (Sandbox Code Playgroud)

因此,对于每个事件,我们想知道它们在每个特定站点位置的时间长度.每个流中最后一个活动的结束日期为空(仍为住院病人)或病人出院的日期.

这是我目前的解决方案:

-- Create a sequence for each site location
INSERT INTO ADT_Activity_Sequence
SELECT 
  [Stream], 
  [Event],
  [Started],
  [Facility], 
  ROW_NUMBER() OVER (PARTITION BY [Stream], 
    ISNULL([Facility], [Event]) 
    ORDER BY [Started]) AS [FacilitySequence], 
  [PointOfCare], 
  ROW_NUMBER() OVER (PARTITION BY [Stream], 
    ISNULL([Facility], [Event]), 
    ISNULL([PointOfCare], [Event]) …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005

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