Tag: ssl

WCF错误:找不到令牌validation器

我需要通过SSL使用WCF服务,而请求需要使用一个证书进行签名,并且响应需要使用另一个证书进行validation。 我在执行代码时遇到此错误: 找不到’System.IdentityModel.Tokens.X509SecurityToken’令牌类型的令牌validation器。 根据当前安全设置,不能接受该类型的令牌。 根据WCF跟踪,它在尝试validation响应签名时失败,因为我可以看到来自服务器的响应。 这是我的WCF服务设置: 正如你所看到的,我尝试了basicHttpBinding和customBinding(使用在线工具http://webservices20.cloudapp.net/default.aspx转换),我试图设置不同的设置组合变体,但仍然会收到此错误。 任何的想法? 取消响应证书签名validation也是一个选项,但我如何设置?

UWP Windowsapp store应用上的TLS客户端证书身份validation

我正在尝试连接到使用TLS和客户端证书身份validation的服务器。 以下是代码段: async Task TestClientCertAuth() { int iWinInetError = 0; Uri theUri = new Uri(“http://xxx-xxx”); try { using (HttpBaseProtocolFilter baseProtocolFilter = new HttpBaseProtocolFilter()) { // Task GetClientCertificate() displays a UI with all available // certificates with and returns the user selecter certificate. An // oversimplified implementation is included for completeness. baseProtocolFilter.ClientCertificate = await GetClientCertificate(); baseProtocolFilter.AllowAutoRedirect […]

如何在WCF中使用SSL加密

我在本教程中有一个简单的应用程序: WCF 4入门教程 我该如何实现一些加密? 像HTTPS(SSL?)之类的东西。 教程中的示例代码。 static void Main(string[] args) { // Step 1 of the address configuration procedure: Create a URI to serve as the base address. Uri baseAddress = new Uri(“http://localhost:8000/ServiceModelSamples/Service”); // Step 2 of the hosting procedure: Create ServiceHost ServiceHost selfHost = new ServiceHost(typeof(CalculatorService), baseAddress); try { // Step 3 of the […]

在C#中处理非validationSSL证书的最佳方法是什么?

我正在使用以下代码来确保所有证书都通过,甚至是无效证书,但我想知道是否有更好的方法,因为这个事件被全局调用,我只希望证书通过某个HTTP调用而不是任何其他异步发生的事情。 // This delegate makes sure that non-validating SSL certificates are passed ServicePointManager.ServerCertificateValidationCallback = delegate(object certsender, X509Certificate cert, X509Chain chain, System.Net.Security.SslPolicyErrors error) { return true; }; 上面的代码只是忽略证书上任何非validation的一个例子。 我遇到的问题是它是一个全球性的事件。 我无法看到事件发生的会话。 我可能会有几个http请求通过,我想要求用户为每个请求执行操作 。

在Microsoft.Web.Administration.Application对象上配置SSL?

我在解决如何以编程方式启用“需要SSL”复选框并使用Microsoft.Web.Administration在IIS应用程序中将“客户端证书”选项更改为“需要”时遇到了一些麻烦。 我发现网上的所有问题都与在网站上配置它有关,但我只需要为网站上托管的一些应用程序打开它。 有人有这方面的经验吗? 我试着这个开始: application.EnabledProtocols = “http,https”; serverManager.CommitChanges(); 但是我收到了一个错误: 文件名:\?\ C:\ Windows \ system32 \ inetsrv \ config \ applicationHost.config错误:无法写入配置文件 这很奇怪,因为根据我的阅读,我收集该文件维护IIS配置,但它在Windows中不存在(我无法在TextPad中打开),但它确实存在于命令提示符中,我可以more 。

C#SSL基本访问认证

我想要求第三方提交报告,他们需要通过POST进行“基本访问身份validation”: Your client application must use Basic Access Authentication to send the user name and password. 有人能指出我正确的方向吗? 编辑:我确实看到了这篇文章,但有两个答案,我不确定那是我需要做什么或哪一个是首选方法。

使用WebClient时的System.Net.WebException:无法创建SSL / TLS安全通道

当我执行以下代码时 System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, errors) => { return true; }; var webClient = new WebClient(); var s = webClient.DownloadString(“https://jtlplugins.x-volution.de/api.php?apikey=yS5VS7OiG1ukiIqLzCSYuFCjeF1qSskKOQeCtVxh&do=pruefe_app&cappid=123&chardwareid=DC0D-BFEA-6F79-58DE-21E9-BA3A-B288-C46F&clizenzschluessel=123”); 我总是得到一个System.Net.WebException:无法创建SSL / TLS安全通道 当我执行这个 https://jtlplugins.x-volution.de/api.php?apikey=yS5VS7OiG1ukiIqLzCSYuFCjeF1qSskKOQeCtVxh&do=pruefe_app&cappid=123&chardwareid=DC0D-BFEA-6F79-58DE-21E9-BA3A-B288-C46F&clizenzschluessel=123 例如,直接在Firefox或Internet Explorer中,它可以工作并返回结果。 我应该怎么做,这也是我的代码在浏览器中执行的? 我已经阅读了stackoverflow中有关此问题的其他post – 但他们没有解决我的问题:-(

如何清除任何SSL证书数据

我有一个客户端 – 服务器设置。 客户端创建代理以与服务器通信。 当通信协议为HTTPS时,代理通过以下行侦听SSL证书validation事件: ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate); ValidateRemoteCertificate方法处理证书exception。 在客户端中,用户可以选择3个安全级别中的一个:低,中和高。 在低级别,ValidateRemoteCertificate方法忽略任何错误并始终返回true。 在中级,ValidateRemoteCertificate方法触发一个事件,通知客户端该问题。 在此阶段,向用户显示消息,通知他证书存在问题,并允许用户选择是继续并接受与服务器的连接还是拒绝。 在High级别,ValidateRemoteCertificate方法拒绝任何错误的连接。 到现在为止还挺好。 方案如下: 客户端加载了预定义的安全级别“中”,该级别已被用户接受,并且与服务器建立连接,而不会传播任何证书问题。 用户断开客户端与服务器的连接(通过特殊按钮)。 用户尝试重新连接客户端。 在此阶段,客户端可以通过测试按钮测试连接。 尽管已为连接测试创建了新代理,并且已从ServerCertificateValidationCallback(特定代理类型)中清除了所有ValidateRemoteCertificate方法,但测试方法返回成功。 此外,没有为有问题的证书触发事件,并且不调用ValidateRemoteCertificate方法。 我试图实现的行为是,当执行测试时,ServerCertificateValidationCallback将表现为在客户端启动并且ValidateRemoteCertificate发挥作用后它是对它的第一次调用。 我试图寻找任何方法来清除ServicePointManager中的任何委托/事件,但我找不到任何。 这里有缓存可以清除吗? 我希望这个场景足够清晰。

如何validation此ADFS令牌?

在我的MVC站点上,如果我检测到正在使用ADFS帐户,我会重定向到ADFS登录页面。 用户输入其ADFS凭据后,ADFS站点WsFederationMessage回我的站点。 如何validation作为此WsFederationMessage一部分呈现给我的站点的ADFS令牌? 在AuthenticationHandler中间件类中,我有以下调用ValidateToken方法的相关代码: IFormCollection form = await Request.ReadFormAsync(); WsFederationMessage wsFederationMessage = new WsFederationMessage(form); if (!wsFederationMessage.IsSignInMessage) { Request.Body.Seek(0, SeekOrigin.Begin); return null; } var token = wsFederationMessage.GetToken(); if (wsFederationMessage.Wresult != null && Options.SecurityTokenHandlers.CanReadToken(token)) { SecurityToken validatedToken; ClaimsPrincipal principal = Options.SecurityTokenHandlers.ValidateToken(token, Options.TokenValidationParameters, out validatedToken); … } 我尝试调用ValidateToken时收到此错误: 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息:System.IdentityModel.SignatureVerificationFailedException:ID4037:无法从以下安全密钥标识符“SecurityKeyIdentifier”解析validation签名所需的密钥 IsReadOnly = False,Count = 1,Clause [0] = […]

简单的客户端/服务器,TCP / IP加密消息流,SSL

编写一个小的TCP / IP客户端服务器应用程序。 基本上它创建了一个服务器,然后你可以创建几个不同的客户端并设置一些聊天会话。 我想知道有没有办法合并,使用标准的.net库某种forms的加密? m_mainSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); 有没有办法使用rsa来表示tcp? 或者你(我是)必须写一些自定义库来进行密钥交换,然后加密后续的聊天消息? 我之前已经为uni做过,但那是在java中,但我知道转换它们并不困难。 只是试图不必重新发明轮子…… 或者使用ssl怎么样? 谢谢,罗恩。