小编Cly*_*yde的帖子

调用exe退出后,xp_cmdshell挂起

我使用xp_cmdshell挂起问题.

  1. 调用可执行文件,执行其工作并退出.由于exe中的ui提示,它不会挂起.exe根本没有悬挂.exe从任务管理器中的进程列表中消失,并且来自exe的内部日志记录确认它执行了main函数中的最后一行

  2. 对xp_cmdshell的调用不会在SQL中返回控件.它挂在那一行(它是批处理的最后一行).杀死这个过程是无效的.它实际上需要重启sql server来摆脱挂起的进程(呃)

  3. 挂起仅在第一次运行时发生.只要第一个挂起,对具有相同参数的过程的后续调用就会正常工作并正确退出.重新启动SQL后,第一个后续调用将再次挂起.

  4. 如果它有任何区别,我试图从exe接收返回值 - 我的sql过程结束于:

    exec @i = xp_cmdshell @cmd; 回来@i;

  5. Activity Monitor报告的进程是停留在等待类型的PREEMPTIVE_OS_PROCESSOPS(其他开发人员看到的)或PREEMPTIVE_OS_PIPEOPS(我在当前测试中看到的)

有任何想法吗?

xp-cmdshell sql-server-2008

6
推荐指数
2
解决办法
8832
查看次数

Force EntityFramework使用OUTPUT而不是SCOPE_IDENTITY来检索键值

我首先使用Entity Framework代码来访问一组表,这些表的键将由默认约束中的基于int的SEQUENCE设置.EF似乎无法处理这个问题,它坚持在插入后使用SCOPE_IDENTITY来填充整数键字段.

深入研究代码,看起来有点硬编码:

http://entityframework.codeplex.com/SourceControl/latest#src/EntityFramework.SqlServer/SqlGen/DmlSqlGenerator.cs

在页面的中间稍微查看IsValidScopeIdentityColumnType方法.如果此方法返回true,则使用SCOPE_IDENTITY()检索插入的Key值,否则将生成OUTPUT子句.(Guid/uniqueidentifier是那里的典型用例).

        // make sure it's a primitive type
        if (typeUsage.EdmType.BuiltInTypeKind != BuiltInTypeKind.PrimitiveType)
        {
            return false;
        }

        // check if this is a supported primitive type (compare by name)
        var typeName = typeUsage.EdmType.Name;

        // integer types
        if (typeName == "tinyint"
            || typeName == "smallint"
            ||
            typeName == "int"
            || typeName == "bigint")
        {
            return true;
        }
Run Code Online (Sandbox Code Playgroud)

有没有办法欺骗这个方法为整数字段返回false?一旦我开始看到像'EDMType'这样的东西,我就超出了我对EF映射真正起作用的真正理解.也许有一些方法可以使用用户定义的类型来欺骗它?但它确实是.NET方面的配置需要某种更新.

另请参阅同一文件中的UseGeneratedValuesVariable方法,了解其使用方法...

我不清楚为什么OUTPUT不仅仅是全面使用 - 也许是性能?

c# entity-framework

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

.NET HTML白名单(反xss /跨站点脚本)

我有一个常见的情况,我有用户输入使用HTML的子集(输入tinyMCE).我需要一些针对XSS攻击的服务器端保护,并且我正在寻找一个经过充分测试的工具,人们正在使用它来做这件事.在PHP方面,我看到许多像HTMLPurifier这样的库可以完成这项工作,但我似乎无法在.NET中找到任何东西.

我基本上是在寻找一个库来过滤到标签的白名单,这些标签上的属性,并使用"href"和"img:src"等"难"属性做正确的事情.

我在http://refactormycode.com/codes/333-sanitize-html上看过Jeff Atwood的帖子,但我不知道它是最新的.它对网站目前使用的内容有什么影响吗?无论如何,我不确定我是否对尝试重新输出有效输入的策略感到满意.

这篇博客文章列出了一个看起来更具吸引力的策略:

http://blog.bvsoftware.com/post/2009/01/08/How-to-filter-Html-Input-to-Prevent-Cross-Site-Scripting-but-Still-Allow-Design.aspx

此方法实际上是将HTML解析为DOM,验证它,然后从中重建有效的HTML.如果HTML解析可以合理地处理格式错误的HTML,那么很棒.如果不是,没什么大不了的 - 我可以要求格式良好的HTML,因为用户应该使用tinyMCE编辑器.在任何一种情况下,我都在重写我所知道的安全,格式良好的HTML.

问题是,这只是一个描述,没有指向实际执行该算法的任何库的链接.

这样的图书馆存在吗?如果没有,什么是一个很好的.NET HTML解析引擎?什么正则表达式应该用于执行额外的验证a:href,img:src?我错过了其他重要的东西吗?

我不想在这里重新实现一个车轮.当然有一些常用的库.有任何想法吗?

.net xss whitelist

5
推荐指数
2
解决办法
8525
查看次数

如何正确地将样式应用于Content Presenter

我正在使用以下有关链接按钮的问题的答案:

/sf/answers/249529451/

问题在于TextDecoration Underline样式仅应用于自动生成的TextBlocks。

<Button Style="{StaticResource LinkButton}">Text</Button> 
Run Code Online (Sandbox Code Playgroud)

带下划线的“文字”

<Button Style="{StaticResource LinkButton}"><TextBlock Text='Text' /></Button> 
Run Code Online (Sandbox Code Playgroud)

“文字”未加下划线

为什么它不适用于内容中的任何TextBlock?

这是样式的相关部分:

<Style x:Key="LinkButton" 
       TargetType="Button"
       BasedOn="{StaticResource ResourceKey={x:Type Button}}"
       >

    <Setter Property="Width" Value="Auto"/>

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="Button">
                <ContentPresenter Content="{TemplateBinding Content}" 
                                  ContentTemplate="{TemplateBinding  ContentTemplate}"
                                  VerticalAlignment="Center"
                                  >
                    <ContentPresenter.Resources>
                        <Style TargetType="{x:Type TextBlock}">
                            <Setter Property="TextDecorations" Value="Underline" />
                        </Style>
                    </ContentPresenter.Resources>
                </ContentPresenter>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)

wpf styles

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

为这个被动ui场景构建测试(或属性)

我不确定构建此测试的正确方法.我在这里有一个视图模型:

public class ViewModel
{
  public ReactiveCommand PerformSearchCommand { get; private set; }
  private readonly ObservableAsPropertyHelper<bool> _IsBusy;
  public bool IsBusy
  {
      get { return _IsBusy.Value; }
  }

  public ViewModel(IAdventureWorksRepository _awRepository)
  {
    PerformSearchCommand = new ReactiveCommand();

    PerformSearchCommand.RegisterAsyncFunction((x) =>
    {
      return _awRepository.vIndividualCustomers.Take(1000).ToList();
    }).Subscribe(rval =>
    {
      CustomerList = rval;
      SelectedCustomer = CustomerList.FirstOrDefault();
    });

   PerformSearchCommand.IsExecuting.ToProperty(this, x => x.IsBusy, out _IsBusy);
   PerformSearchCommand.Execute(null); // begin executing immediately
  }

}
Run Code Online (Sandbox Code Playgroud)

依赖项是AdventureWorks的数据访问对象

public interface IAdventureWorksRepository
{
  IQueryable<vIndividualCustomer> vIndividualCustomers { get; }
}
Run Code Online (Sandbox Code Playgroud)

最后,我的测试看起来像这样:

    [TestMethod]
    public void TestTiming()
    { …
Run Code Online (Sandbox Code Playgroud)

testing reactiveui

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

如何使用参数值记录/跟踪Oracle存储过程调用?

我们正在寻找一种方法来记录对Oracle中存储过程的任何调用,并查看用于调用的参数值.

我们使用的是Oracle 10.2.0.1

我们可以记录SQL语句并查看绑定变量,但是当我们跟踪存储过程时,我们会看到绑定变量B1,B2等,但没有值.

我们希望看到我们在MS SQL Server Profiler中看到的相同类型的信息.

谢谢你的帮助

oracle

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

异步Web服务调用总是调用AsyncCallback吗?

我正在从C#应用程序进行异步Web服务调用:

{
  //Put UI in 'loading' state
  ...

  //Now call web service
  webServiceProxy.BeginMyMethod(param, new AsyncCallback(MyCallback), null);
}


private void MyCallback(IAsyncResult res)
{
   ...
   //process result

   // Put UI back in normal state (yes I'm marshalling back to the UI thread)
}
Run Code Online (Sandbox Code Playgroud)

主线程将应用程序置于"等待"模式,然后回调函数的结束重新启用控件.我偶尔会看到一个错误,UI在加载模式下永远陷入困境.

现在回调代码中可能只有一个错误(那里有相当多的错误),但我对社区的问题是:

"MyCallback"是否值得被称为?假设"BeginMyMethod"没有抛出异常,我可以确定MyCallback会被执行吗?我在BeginXXX函数返回的IAsyncResult上看到"CompletedSynchronously"和"IsCompleted",但我不确定这是否重要.

.net c# web-services

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

这个SQL查询可能吗?

假设我有这些数据:

Employee  Task   IsCurrent
--------  ----   ---------
Jeff      1      Yes
Jeff      2      No
Jane      1      No
Jane      2      Yes
Jane      3      No
Jane      4      No
Jake      1      Yes
Run Code Online (Sandbox Code Playgroud)

员工有一些任务,其中一个是最新的.任务编号表示一个排序 - 他们按顺序执行任务,当他们完成最后一个任务时循环回到开头.我想查询以查看接下来的三个任务.我想要这个结果集:

Employee    CurrentTask  NextTask  NextTask2
--------    -----------  --------  ---------
Jeff        1            2         1
Jane        2            3         4
Jake        1            1         1
Run Code Online (Sandbox Code Playgroud)

这可能吗?我正在使用SQL 2005

更新:对不起,我没有说清楚任务编号不一定是后续的 - 即Mike可能实际上有任务10,23和223.所以我不能只是加入寻找下一个顺序任务编号.

sql t-sql sql-server pivot sql-server-2005

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