小编Luk*_*ton的帖子

.NET 4.5中的默认SecurityProtocol

与支持最多的服务器通信的默认安全协议是什么TLS 1.2?将.NET在默认情况下,选择支持在服务器端安全性最高的协议或做我必须明确地添加此行代码:

System.Net.ServicePointManager.SecurityProtocol = 
SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Run Code Online (Sandbox Code Playgroud)

除了代码更改之外,有没有办法更改此默认值?

最后,.NET 4.0只支持TLS 1.0吗?即我必须将客户端项目升级到4.5以支持TLS 1.2.

我的动机是删除SSLv3客户端的支持,即使服务器支持它(我已经有一个powershell脚本在机器注册表中禁用它)并支持服务器支持的最高TLS协议.

更新: 查看ServicePointManager该类,.NET 4.0我看到没有枚举值TLS 1.01.1.两者都是.NET 4.0/4.5默认值SecurityProtocolType.Tls|SecurityProtocolType.Ssl3.希望SSLv3在注册表中禁用此默认值不会中断.

但是,我已经决定将所有应用程序升级到.NET 4.5并显式添加SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;到所有应用程序的所有引导代码中.

这将使各种apis和服务的出站请求不降级,SSLv3并应选择最高级别TLS.

这种方法听起来合理还是矫枉过正?我有很多应用程序要更新,我希望将来证明它们,因为我听说甚至TLS 1.0可能在不久的将来被某些提供商弃用.

作为向API发出出站请求的客户端,在注册表中禁用SSL3是否会在.NET框架中产生影响?我默认看到,TLS 1.1和1.2没有启用,我们是否必须通过注册表启用它?RE http://support.microsoft.com/kb/245030.

经过一些调查后,我相信注册表设置将不会有任何影响,因为它们适用于IIS(服务器子项)和浏览器(客户端子项).

对不起,这篇文章变成了多个问题,接着是"可能"的答案.

.net security ssl

238
推荐指数
11
解决办法
26万
查看次数

不需要的十进制截断

我的型号:

public class Product
{
    ...
        public decimal Fineness { get; set; }
    ...
}
Run Code Online (Sandbox Code Playgroud)

播种数据库:

new List<Product>
        {
            new Product { ..., Fineness = 0.757M, ... },
            new Product { ..., Fineness = 0.674M, ... },
            new Product { ..., Fineness = 0.475M, ... }
        }.ForEach(p => context.Products.Add(p));
Run Code Online (Sandbox Code Playgroud)

查询数据库以测试种子:

var products = db.Products.ToList();
foreach (var p in products)
{
    S.D.Debug.WriteLine("ProductList: {0}, {1}", p.Name, p.Fineness);
}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

ProductList: Test Product, 0.75 
ProductList: Test Product, 0.67 
ProductList: Test Product, 0.47    
Run Code Online (Sandbox Code Playgroud)

我做的事真的很傻或者什么?一切都被截断到2位小数. …

c# asp.net-mvc entity-framework truncate

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

DateTime.ParseExact赋予String未被识别为有效的DateTime.

我正在尝试将日期字符串解析为DateTime变量.我发现这ParseExact是做到这一点的方法,但我试试这个我得到错误:

字符串未被识别为有效的DateTime.

string timeFormat = "dd-MM-yyyy hh:mm:ss";
DateTime startDate = DateTime.ParseExact(reader["startdate"].ToString(), timeFormat, CultureInfo.InvariantCulture);
DateTime nextDate = DateTime.ParseExact(reader["nextdate"].ToString(), timeFormat, null);
Run Code Online (Sandbox Code Playgroud)

我已经尝试了两种null(它恰好在另一页上工作)和CultureInfo.InvariantCulture.

reader["startdate"].ToString() 输出:01-08-2012 15:39:09

reader["nextdate"].ToString() 输出:01-08-2012 15:39:09

我认为它应该有效,但事实并非如此.

有人知道出了什么问题?:)

c# asp.net datetime parsing

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

正确使用Action和Events

我有点新,c#所以如果你觉得它很琐碎,请忽略.我看到了以下"奇怪"的代码.

任何人都可以对此有所了解.

public event Action _action;

if (_action != null)            
{
    foreach (Action c in _action.GetInvocationList())
    {
         _action -= c;
    }
}
Run Code Online (Sandbox Code Playgroud)

特别是_action -= c;部分.

c# events

9
推荐指数
2
解决办法
505
查看次数

Quartz.NET scheduler.Interrupt(jobKey)正在中断所有活动作业

该方法是否只会中断jobKey定义的作业?我已经运行了一些测试,它似乎会中断当前正在运行的所有活动作业.

我正在使用一个restful web api连接到远程调度程序来创建/中断/删除作业.

Api服务代码:

public void DeleteJob(JobKey jobKey)
{
    var scheduler = _clientQuartzScheduler.GetScheduler();

    var executingJobs = scheduler.GetCurrentlyExecutingJobs();

    if (executingJobs.Any(x => x.JobDetail.Key.Equals(jobKey)))
    {
        scheduler.Interrupt(jobKey);
    }

    scheduler.DeleteJob(jobKey);
}
Run Code Online (Sandbox Code Playgroud)

Quartz远程调度程序应用程序设置为:

<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="10" />
<add key="quartz.threadPool.threadPriority" value="Normal" />

<add key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz" />
<add key="quartz.scheduler.exporter.port" value="555" />
<add key="quartz.scheduler.exporter.bindName" value="QuartzScheduler" />
<add key="quartz.scheduler.exporter.channelType" value="tcp" />
<add key="quartz.scheduler.exporter.channelName" value="httpQuartz" />
<add key="quartz.scheduler.exporter.rejectRemoteRequests" value="false" />

<add key="quartz.jobStore.clustered" value="false" />
<add key="quartz.jobStore.misfireThreshold" value="60000" />
<add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
<add …
Run Code Online (Sandbox Code Playgroud)

.net c# quartz.net

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

如何在不影响网站中包含的列表的情况下隐藏共享点列表上的"!NEW"标记?

有人知道是否可以隐藏附加到新SharePoint列表项的Title字段的"NEW"标签?

我有一个夜间脚本,将列表从一个站点复制到另一个站点列表,不需要显示新的.

sharepoint wss-3.0

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

如何使用Swagger/ServiceStack指定Response类并返回状态代码

是否可以ServiceStack.Api.Swagger v3.9.33使用Swagger?描述API操作的响应和返回的状态代码?也许是通过响应类/属性等的属性修饰.

与宠物商店API中以下示例操作的突出显示部分类似:(http://petstore.swagger.wordnik.com/)

在此输入图像描述

我只能看到HTTP方法和请求DTOS可以在https://github.com/ServiceStack/ServiceStack/wiki/Swagger-API上进行修饰,快速浏览代码看起来可能还不支持,https:// github. COM/ServiceStack/ServiceStack /树/主/ src目录/ ServiceStack.Api.Swagger

c# servicestack swagger

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

如何在asp.net webforms中正确实现PRG模式

我有一个简单的三页asp.net webforms网站,并且有一个问题,后面的浏览器按钮会弹出弹出窗口"...... Firefox必须发送任何可以重复任何操作的信息......",当回到step3.aspx时.

流程为:用户登陆step1.aspx,会话启动,用户引用产品并重定向到step2.aspx.在step2.aspx上,单击asp:按钮确认购买.OnClick事件处理程序btnPurchase_Click处理购买和重定向的逻辑,Response.Redirect("step3.aspx")到step3.aspx.Step3.aspx只显示确认页面(收据详情).会话在步骤3中被销毁,当用户点击后面的浏览器按钮时,会提示他们重新提交帖子弹出窗口.理想情况下,我希望用户在没有重新提交提示的情况下点击返回step1.如果会话无效,则每个页面都设置为no-cache并重定向到step1.

有没有人建议更好的流量?

该站点最终将迁移到asp.net mvc/ajax,这很可能使PRG工作流程更容易实现,但是现在,寻找一种相对简单的方法.

.net c# asp.net webforms post-redirect-get

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

返回实现通用接口的类的类型

SomeRepository类型不是由返回GetPublicClassesFromApplicationAssembly.我希望返回所有类型的扩展IRepository的类.有谁能看到这个问题?

  private Type[] GetPublicClassesFromApplicationAssembly()
  {
      return typeof (SomeRepository).Assembly.GetExportedTypes()
            .Where(t => t.IsClass)
            .Where(t => t.IsAbstract == false)
            .Where(r => r.IsAssignableFrom(typeof(IRepository<>)))
            .OrderBy(t => t.Name)
            .ToArray();
  }

  public class SomeRepository : IRepository<SomeDomainClass> {}

  public interface IRepository<T> where T : PrimaryKeyBase {}

  public class SomeDomainClass: PrimaryKeyBase {}
Run Code Online (Sandbox Code Playgroud)

.net c#

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

无法使用TeamCity和一个git子模块构建

我正在尝试TeamCity 6.5.6使用git带有一个子模块的repo进行构建,但是"无法启动构建".

.gitmodules 文件:

[submodule "src/shared-contracts"]
path = src/shared-contracts
url = gitolite@myserver:shared-contracts
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

Failed to start build: Server was not able to build correct patch, most likely due to VCS errors, will try again. jetbrains.buildServer.agent.impl.patch.PatchDownloaderImpl$1: Server was not able to build correct patch, most likely due to VCS errors, will try again.

Caused by: jetbrains.buildServer.vcs.patches.UnsuccessfulPatchException: Failed to build patch for build #s5 {build id=19947}, VCS root: gitolite@myserver:myrepo#mapi-qa {instance id=1152, parent id=280}, due to error: Patch building …

git teamcity

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