小编Edd*_*die的帖子

为安全性编码HTML输入时,如何避免编码Ñ或ñ等国际字符?

我在ASP.NET MVC应用程序中有一个textarea,用户可以在其中键入一些文本.当我向用户显示文本时,我Html.Encode用来防止恶意输入.问题是用户可以键入西班牙语,也许他会输入año并将其Encode转换为a&#241o.我该如何防止这种情况?

编辑:在生成的HTML中,我看到:

<a href="a1-'a1'-Cama&amp;#241;o?sort=estadisticas#241;o">a1 'a1' Cama&amp;#241;o</a>
Run Code Online (Sandbox Code Playgroud)

在页面的后面我有这个,这次显示是正确的:

<b>a1 'a1' Cama&#241;o</b>
Run Code Online (Sandbox Code Playgroud)

第一个是这样生成的:

<%= Html.RouteLink(Html.Encode(Model.NAME),  ...... %>
Run Code Online (Sandbox Code Playgroud)

第二个是这样的:

<%= Html.Encode(Model.NAME)%>
Run Code Online (Sandbox Code Playgroud)

所以我的猜测是问题在于Html.RouteLink.

html security asp.net-mvc encoding

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

有没有办法在不使用COM的情况下在C#中以编程方式遵循Windows文件系统快捷方式?

回到.NET 1.0天,我写了一个方法来返回MS Windows上的快捷方式的目标.它通过使用Windows脚本托管对象模型的互操作和强制通过COM接口执行此操作:

private FileInfo GetFileFromShortcut(FileInfo shortcut)
{
    FileInfo targetFile = null;

    try
    {
        IWshRuntimeLibrary.WshShell wShell = new IWshRuntimeLibrary.WshShellClass();
        IWshRuntimeLibrary.WshShortcut wShortcut = (IWshRuntimeLibrary.WshShortcut)wShell.CreateShortcut(shortcut.FullName);

        // if the file wasn't a shortcut then the TargetPath comes back empty
        string targetName = wShortcut.TargetPath;
        if (targetName.Length > 0)
        {
            targetFile = new FileInfo(targetName);
        }
    }
    catch (Exception)
    { // will return a null targetFile if anything goes wrong
    }

    return targetFile;
}
Run Code Online (Sandbox Code Playgroud)

这仍然让我感到困扰,我希望用更优雅的东西取代它,但前提是替换实际上至少也是如此.我仍然找不到寻找快捷方式目标的本地C#方式.有没有,或者这仍然是做这种事情的最佳方式?

c# windows shortcuts

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

如何正确杀死在tomcat上运行的webapp拥有的本地线程,指示关闭

后端webapp部署在Tomcat 6 servlet容器上.在webapp中,启动了几个监视线程.问题在于关机.

  • 我如何知道要求关闭webapp?
  • 我应该如何在我的线程中处理这个问题?

目前我的线程实现如下.当servlet被指示关闭(shutdown.sh)时,它确实完成了一个干净的关闭并且因为这个线程而没有挂起 - 为什么?

class Updater extends Thread {
  volatile boolean interrupted = false;

  @Override
  public void run() {
    Integer lastUpdateLogId = CommonBeanFactory.getXXX()
                              .getLastUpdateLogRecordKey(MLConstants.SMART_DB_NAME);

    List<UpdateLog> updateLogRecords;
    while (!interrupted) {
      boolean isConfigurationUpdateRequested = false;

      try {
        TimeUnit.SECONDS.sleep(5);
      } catch (InterruptedException e) {
        setInterrupted(true);
      }

      updateLogRecords = CommonBeanFactory.getXXX()
                         .getLastFactsUpdateLogRecords(MLConstants.XXXX, lastUpdateLogId);

      for(UpdateLog updateLog : updateLogRecords) {
        if (updateLog.getTable_name().equals(MLConstants.CONFIG_RELOAD)) {
          isConfigurationUpdateRequested = true;
        }

        lastUpdateLogId = updateLog.getObjectKey();
      }

      if (isConfigurationUpdateRequested) {
        Configuration.getInstance().loadConfiguration();
      }
    }
  }

  public boolean getInterrupted() {
    return …
Run Code Online (Sandbox Code Playgroud)

multithreading jvm shutdown

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

为什么这个"绑定"代码在JavaFX中没有像预期的那样工作?

我是JavaFX的新手.我无法理解为什么下面的代码不起作用.

import javafx.util.Sequences;

def nums = [1..10];
var curr = 0;

var evenOrOdd = bind if (nums[curr] mod 2 == 0) "{nums[curr]} is an even number" else "{nums[curr]} is an odd number";

for (curr in [0..(sizeof nums -1)])
{
    println("{evenOrOdd}");
}
Run Code Online (Sandbox Code Playgroud)

我正进入(状态

1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an odd number
1 is an …
Run Code Online (Sandbox Code Playgroud)

javafx

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

JSTL <c:out>元素名称包含空格字符

我有一系列值可用,但遗憾的是一些变量名称包含空格.我无法弄清楚如何在页面中简单地输出这些内容.我知道我不是很好解释(我是JSP设计师,而不是Java编码器)所以希望这个例子能说明我想要做的事情:

<c:out value="${x}"/>
Run Code Online (Sandbox Code Playgroud)

输出到页面(人工包装)为:

{width=96.0, orderedheight=160.0, instructions=TEST ONLY. This is a test.,
 productId=10132, publication type=ns, name=John}
Run Code Online (Sandbox Code Playgroud)

我可以使用输出名称

<c:out value="${x.name}"/>
Run Code Online (Sandbox Code Playgroud)

没问题.问题是当我试图获得"发布类型"...因为它有一个空间,我似乎<c:out>无法显示它.

我试过了:

<!-- error parsing custom action attribute: -->
<c:out value="${x.publication type}"/>
<!-- error occurred while evaluating custom action attribute: -->
<c:out value="${x.publication+type}"/>
<!-- error occurred while parsing custom action attribute: -->
<c:out value="${x.'publication type'}"/>
<!-- error occurred while parsing custom action attribute: -->
<c:out value="${x.publication%20type}"/>
Run Code Online (Sandbox Code Playgroud)

我知道真正的解决方案是使变量名称格式正确(即:没有空格)但我不能让代码更新很长一段时间.可以这样做吗?任何帮助非常感谢.

java jsp jstl

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

理想的后台文件系统备份

我正在考虑一个可以在后台运行的脚本/程序,并尝试将给定的文件系统路径备份或同步到镜像位置(可能位于外部/单独的存储设备上)。

这应该适用于 Windows,但也可以在 Linux 下使用。

  • 差异/增量备份是一个额外的好处。
  • Windows 系统状态备份也是一个额外的好处。
  • 保持源头不含元数据至关重要。(与版本控制不同)
  • 按文件或活动日期搜索可能很有趣(例如版本控制)
  • 备份存储库应该易于浏览并且占用的空间很小。
  • 已删除的文件应该可以在一段时间内恢复。
  • Windows 备份繁琐、臃肿且有限。
  • Tar-gzip 无法访问。
  • 备份期间应该不存在用户交互。

linux windows filesystems backup background

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

为什么Tomcat会在catalina.out日志文件中加倍我的日志行?

每当我查看Tomcat的catalina.out日志文件时,我会看到每个日志条目的双行.为什么会这样?这种情况发生在任何Java(Tomcat)用户之前吗?

java logging tomcat logfiles

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

DesignPatterns:哪种最适合用于向导式用户界面?

我正在实现一个向导式用户界面.当用户流向向导时,单击下一步,根据他们在每个屏幕上选择的选项,用户必须经过一组特定的向导屏幕.

这是在ASP.NET MVC中构建的.我想知道什么样的设计模式最适合实现向导中的步骤序列的逻辑.同样,根据他们的选择,他们在向导中有多条路径.

我可以使用链表吗?" 命令设计模式 "?您有什么推荐的吗?

换句话说:在何处/如何根据用户在向导的特定步骤中选择的内容,抽象/封装确定向导中下一步的逻辑?

asp.net-mvc design-patterns wizard

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

Windows中的Git调试问题(MsysGit)

我正在使用Windows上的git遇到一个经常出现的问题(我从包Git-1.6.0.2-preview20080923.exe运行MSysGit,我也尝试使用Git-1.5.6.1-preview20080701.exe,结果是一样的).

当我没有更改它们时,一些文件显示为已更改,并且在git-gui中显示删除的内容与添加的内容(通常是整个文件)相同,即
- This line was here before
- This line was here before as well
- and this line too...
+ This line was here before
+ This line was here before as well
+ and this line too...

我试过git checkout -fgit reset --hard,但文件保持不变.我也尝试在硬重置之前删除文件.我试着谷歌搜索但找不到任何相关的东西.
你能告诉我如何解决这个问题,或者你会采取什么步骤来确认这是Git而不是我的系统的问题,所以我可以把它报告为bug.

git

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

Visual Studio调试器不会在文件名中带有"(反引号)"的文件中加载符号.有谁能解释一下?

我在Visual Studio 2005中调试了一些代码,当时我注意到IDE没有在特定的泛型类中遇到断点.我可以手动进入该类,但悬停在引用上时显示的工具提示只包含内存地址而不是普通的友好工具提示.

事实证明,问题是由文件名(!)引起的.具体来说,当文件名包含`(反引号,反引号)时,调试器将不会加载该文件的符号.解决方法是重命名该文件.

我首先使用反引号来表示泛型类型的基数:

  • Foo.cs包含非泛型类型(例如Foo)
  • Foo`1.cs包含一个带有单个类型参数的泛型类型(例如Foo <T>)
  • Foo`2.cs包含一个带有两个类型参数的泛型(例如Foo <T,U>)

这个错误(是吗?)也发生在Visual Studio 2008中.

谁能解释这种行为?

c# debugging visual-studio

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