小编Pau*_*yer的帖子

如何删除ASP.Net MVC默认HTTP标头?

我正在使用的MVC应用程序中的每个页面都在响应中设置这些HTTP标头:

X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
X-AspNetMvc-Version: 2.0
Run Code Online (Sandbox Code Playgroud)

如何防止这些显示?

security asp.net-mvc http-headers

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

如何在XElement或LINQ中使用XPath?

考虑以下XML:

<response>
  <status_code>200</status_code>
  <status_txt>OK</status_txt>
  <data>
    <url>http://bit.ly/b47LVi</url>
    <hash>b47LVi</hash>
    <global_hash>9EJa3m</global_hash>
    <long_url>http://www.tumblr.com/docs/en/api#api_write</long_url>
    <new_hash>0</new_hash>
  </data>
</response>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种非常简短的方法来获得<hash>元素的价值.我试过了:

var hash = xml.Element("hash").Value;
Run Code Online (Sandbox Code Playgroud)

但那不起作用.是否可以提供XPath查询XElement?我可以使用旧System.Xml框架来执行此操作,执行以下操作:

xml.Node("/response/data/hash").Value
Run Code Online (Sandbox Code Playgroud)

在LINQ命名空间中是否有这样的东西?


更新:

在对此进行了一些讨论之后,我找到了一种方法来做我正在尝试做的事情:

var hash = xml.Descendants("hash").FirstOrDefault().Value;
Run Code Online (Sandbox Code Playgroud)

我仍然有兴趣看看是否有人有更好的解决方案?

.net xml xelement xpath linq-to-xml

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

为什么在C#中使用global关键字?

我想了解为什么你可能想要使用global::前缀.在以下代码中,ReSharper将其标识为冗余,并且能够将其删除:

替代文字

.net c# namespaces global

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

如何获取字符串的最后一部分?

鉴于此字符串:

http://s.opencalais.com/1/pred/BusinessRelationType
Run Code Online (Sandbox Code Playgroud)

我想得到它的最后一部分:"BusinessRelationType"

我一直在考虑反转整个字符串,然后寻找第一个"/",把所有内容都放在左边,然后反过来.但是,我希望有更好/更简洁的方法.思考?

谢谢,保罗

c# regex

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

Parallel.ForEach Block?

.net函数Parallel.ForEach是否会阻塞调用线程?我对行为的猜测是以下之一:

  1. 是的,它会阻塞,直到最慢的项目执行返回.
  2. 不,它不会阻止并立即返回控制.并行运行的项目在后台线程上完成.

或许其他事情正在发生,任何人都知道吗?

在日志记录类中实现此问题时出现了这个问题:

public class MultipleLoggingService : LoggingServiceBase
{
    private readonly List<LoggingServiceBase> loggingServices;

    public MultipleLoggingService(List<LoggingServiceBase> loggingServices)
    {
        this.loggingServices = loggingServices;
        LogLevelChanged += OnLogLevelChanged;
    }

    private void OnLogLevelChanged(object sender, LogLevelChangedArgs args)
    {
        loggingServices.ForEach(l => l.LogLevel = LogLevel);
    }

    public override LogMessageResponse LogMessage(LogMessageRequest request)
    {
        if (request.LogMessage)
            Parallel.ForEach(loggingServices, l => l.LogMessage(request));

        return new LogMessageResponse{MessageLogged = request.LogMessage};
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,该LogMessage方法调用其他一些日志服务.我需要该部分立即返回,因此它不会阻止调用线程.


更新:根据其他人的评论(我们已确认行为是#1).所以我已经建议使用Task库并重写循环,如下所示:

          if (request.LogMessage)
            foreach (var loggingService in loggingServices)
                Task.Factory.StartNew(() => loggingService.LogMessage(request));
Run Code Online (Sandbox Code Playgroud)

.net c# parallel-processing logging multithreading

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

如何用C#查找一个月的第3个星期五?

给定日期(类型DateTime),如何找到该日期的第3个星期五?

.net c# datetime

25
推荐指数
7
解决办法
3万
查看次数

ASP.Net MVC的AntiForgeryToken方法是否可以与负载均衡器配合使用?

使用ASP.Net MVC v2.0,我开始研究Html.AntiForgeryToken()在提交处理数据的表单时使用该方法.我可以看到它在HTML表单中设置了一个隐藏值,它在会话cookie中设置了相同的值.

问题是负载均衡配置中的不同Web服务器会在HTML表单中创建相同的令牌吗?看来如果他们没有,那么cookie和隐藏的表单值将不匹配,我们就会遇到问题.在我开始在LB配置中进行实际测试之前,想要检查是否有人已经有过这方面的经验?

谢谢,保罗

security cookies asp.net-mvc load-balancing antiforgerytoken

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

表单身份验证是否适用于Web负载均衡器?

我正在使用使用Forms身份验证的Web应用程序.

    <authentication mode="Forms">
        <forms slidingExpiration="true"
         loginUrl="~/User.aspx/LogOn"
         timeout="15"
         name="authToken"  />
    </authentication>
Run Code Online (Sandbox Code Playgroud)

我登录时在浏览器中看到此cookie设置:

替代文字

问题是当我将这个网站置于负载均衡模型时会发生什么?ASP.net会话cookie在哪里设置?我没有在代码中明确地做到这一点,所以我认为它发生在ASP.Net的某个幕后.

此外,如果会话cookie由Web服务器A设置,我假设Web服务器B将无法识别它并将其视为无效会话.如果是这种情况,我可能不想使用它,对吧?

asp.net cookies session

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

我应该关注linq查询中的"访问修改后的闭包"吗?

我有一个显示错误的linq查询:

替代文字

如果集合的源是linq查询,我在任何时候尝试访问我正在迭代的变量时都会看到此错误.我想这个错误只是告诉我变量可能会改变,或类似的东西?

c# linq

15
推荐指数
2
解决办法
2591
查看次数

制作Pascal案例的功能?(C#)

我需要一个带字符串和"pascal case"的函数.新单词开始的唯一指标是下划线.以下是一些需要清理的示例字符串:

  1. price_old =>应该是PriceOld
  2. rank_old =>应该是RankOld

我开始研究一个使第一个字符为大写的函数:

public string FirstCharacterUpper(string value)
{
 if (value == null || value.Length == 0)
  return string.Empty;
 if (value.Length == 1)
  return value.ToUpper();
 var firstChar = value.Substring(0, 1).ToUpper();
 return firstChar + value.Substring(1, value.Length - 1);
}
Run Code Online (Sandbox Code Playgroud)

上面的函数没有做的是删除下划线和"ToUpper"字符右下角.

此外,任何有关如何使用没有任何指标(如下划线)的字符串的概念.例如:

  1. companysource
  2. financialtrend
  3. accountingchangetype

这里的主要挑战是确定一个词的结束和另一个词的开始.我想我需要某种查找字典来确定新单词的起源位置?我们那里有图书馆可以做这种事吗?

谢谢,

保罗

c# regex camelcasing

14
推荐指数
2
解决办法
9456
查看次数