问题列表 - 第8693页

有没有像SOAP代理服务器这样的东西,还是我必须自己滚动?

免责声明:我已经尝试使用谷歌搜索可以做我想要的东西,但没有运气.我希望这里有人可以伸出援助之手.

背景

我有一个.NET类库,可以使用WSE 2.0库访问安全的Web服务.Web服务为中央数据库提供了一个前端(它实际上是跨越多个客户的数据共享网络的一部分),类库提供了一个围绕Web服务调用的简单包装,使其可以从传统的VB6应用程序访问.遗留应用程序使用类库来检索和发布Web服务的信息.目前,应用程序和类库DLL都安装在多个工作站的客户端.

问题

问题是我们正在访问的Web服务使用HTTPS,并且需要向Web服务提供有效的X509客户端证书才能访问它.由于我们的所有组件都存在于客户端计算机上,因此导致了部署问题.例如,我们必须在每台客户端计算机上下载并安装每用户证书,每个用户可能需要通过我们的应用程序访问Web服务.更重要的是,必须通过VPN(特别是OpenVPN)访问Web服务器本身,这意味着必须在每台客户端计算机上安装和配置VPN客户端.这是一个主要的痛苦(我们的一些客户有几十个工作站).

建议的解决方案

建议的解决方案是将所有这些逻辑移动到客户站点上的中央服务器.在这种情况下,我们的遗留应用程序将与本地服务器通信,然后本地服务器将关闭并转发请求到真正的Web服务.此外,作为简化和集中部署工作的一部分,所有X509证书都将安装在服务器上,而不是安装在每台客户端计算机上.

到目前为止,我们已经提出了三个选择:

  • 找到一个现成的SOAP代理服务器,它可以接收传入的基于HTTP的SOAP请求,修改HostSOAP消息的头部和路由相关部分(因此它们指向真实的Web服务器),打开与真实Web的SSL连接服务器,向服务器提供正确的客户端证书(基于用户名到证书的映射),转发修改后的请求,读取响应,将其转换回明文,然后将其发送回客户端.
  • 手工编写代理服务器,完成我刚才提到的所有内容.
  • 想想完全不同的,希望更好的方法来解决这个问题.

合理

尝试查找和/或编写SOAP代理服务器的基本原理是我们现有的.NET包装器库根本不需要修改.我们只需将它指向代理服务器而不是真正的Web服务端点,使用普通的HTTP连接而不是HTTPS.代理服务器将处理请求,修改它以便真正的Web服务接受它(例如更改SOAPAction标头以使其正确),处理SSL /证书握手,并将原始响应数据发送回客户.

然而,这对我来说听起来像是一个可怕的黑客.那么,我的选择在这里呢?

  • 我是否咬紧牙关并编写自己的HTTP/SSL/SOAP/X509识别代理服务器来完成所有这些工作?
  • 或者......是否有一个现成的解决方案,具有足够的可扩展API,我可以很容易地做到我想要的
  • 或者......我应该采取完全不同的方法吗?

我们试图解决的关键问题是(a)集中存储证书的位置以简化证书的安装和管理,以及(b)进行设置,以便与Web服务器的VPN连接仅发生在一台机器上,而不是需要每个客户都安装了VPN客户端软件.

请注意,我们不控制托管Web服务的Web服务器.

编辑:为了澄清,我已经在C#中实现了一个(相当糟糕的)代理服务器,它确实符合要求,但是对于我解决这个问题的整个方法,我觉得从根本上说是错误的.所以,最终,我正在寻找保证我在正确的轨道上,或者有用的建议告诉我,我正在以完全错误的方式解决这个问题,以及任何提示做得更好的方法(如果有的话,我怀疑有).

c# vpn ssl web-services c#-2.0

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

使用jQuery从CKEditor的iframe中获取内容

我有一个自定义编写的CMS,它使用CKEditor*(FCKEditor v3)来编辑内容.我也使用jQuery Validation插件在基于AJAX的提交之前检查所有字段的错误.我正在使用serialize()函数将数据传递给PHP后端.

问题是,serialize设法正确获取所有字段,但在CKEditor中输入的实际内容除外.像所有其他WYSIWYG编辑器一样,这个编辑器也会覆盖现有文本框上的iframe.并且序列化忽略iframe并且只查看内容的文本框,当然,它没有找到,因此返回一个空白内容正文.

我的方法是在CKEditor 的onchange事件上创建一个钩子,并同时更新文本框(CKEDITOR.instances.[textboxname].getData()返回内容)或其他一些隐藏字段,并在编辑器中进行任何更改.

但是,由于CKEditor仍然处于测试阶段且严重缺乏文档,因此我无法找到合适的API调用,这样我就可以这样做.

有没有人知道如何解决这个问题?

ajax iframe jquery serialization ckeditor

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

地理围栏 - 指向内部/外部多边形

我想确定一个多边形并实现一个算法,该算法将检查一个点是在多边形内部还是外部.

有谁知道是否有任何类似算法的可用示例?

algorithm computational-geometry

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

如何使用TimeUnit枚举将纳秒转换为秒?

如何将值从纳秒转换为秒?

这是代码段:

import java.io.*;
import java.util.concurrent.*; 
..

class Stamper { 

public static void main (String[] args) { 
long start = System.nanoTime(); 
//some try with nested loops 
long end = System.nanoTime(); 
long elapsedTime = end - start;

System.out.println("elapsed: " + elapsedTime + "nano seconds\n");

//convert to seconds 
TimeUnit seconds = new TimeUnit(); 
System.out.println("which is " + seconds.toSeconds(elapsedTime) + " seconds"); 
}}
Run Code Online (Sandbox Code Playgroud)

错误是

Stamper.java:16:  enum types may not be instantiated.
Run Code Online (Sandbox Code Playgroud)

这是什么意思?

java timeunit

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

nhibernate Linq

我正在使用nHibernate的旧linq提供程序,耐心等待新的提供者出来.我相信这会给我带来很大的痛苦.无论如何,我在下面的代码中遇到问题,因为它生成了"未设置为对象实例的对象引用".行"c.Disciplines.Any(d => disciplines.Contains(d))"是导致问题的那一行.使用nHibernate Linq这样的语句是否有任何已知问题?

var agencies = m_AgencyRepository.Linq;

Discipline[] disciplines = user.Disciplines.ToArray<Discipline>();

return (from c in agencies
                   where (String.IsNullOrEmpty(criteria.AgencyName) || c.AgencyName.Contains(criteria.AgencyName))
                    && (criteria.AgencyType == null || c.AgencyType.AgencyTypeId == criteria.AgencyType)
                    && (String.IsNullOrEmpty(criteria.AgencyLevel) || c.AgencyLevel.AgencyLevelId == criteria.AgencyLevel)
                    && (c.Disciplines.Any(d => disciplines.Contains(d)))
select c)
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

   at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetEntityName(ICriteria subcriteria, String propertyName)
   at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetType(ICriteria subcriteria, String propertyName)
   at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetTypeUsingProjection(ICriteria subcriteria, String propertyName)
   at NHibernate.Criterion.InExpression.GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQuery)
   at NHibernate.Criterion.Junction.GetTypedValues(ICriteria criteria, ICriteriaQuery criteriaQuery)
   at NHibernate.Loader.Criteria.CriteriaQueryTranslator.GetQueryParameters()
   at NHibernate.Criterion.SubqueryExpression.InitializeInnerQueryAndParameters(ICriteriaQuery criteriaQuery)
   at NHibernate.Criterion.SubqueryExpression.ToSqlString(ICriteria criteria, ICriteriaQuery criteriaQuery, IDictionary`2 enabledFilters)
   at …
Run Code Online (Sandbox Code Playgroud)

c# linq nhibernate

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

gltwapbuffers()的Qt等效函数

请告诉我glutswapbuffers()的Qt等效函数是什么..

qt function

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

在Ubuntu 9.04上最新的Mono + MonoDevelop设置是什么?

我开始在笔记本电脑上使用Ubuntu 9.04.我真正想要的是能够在Ubuntu上编写我的C#项目,包括单元测试.任何人都可以指导我如何设置它?

c# installation mono monodevelop ubuntu-9.04

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

获得一个月的第一个或最后一个星期五

我正在尝试编写这样的日历函数

function get_date($month, $year, $week, $day, $direction)
{
    ....
}
Run Code Online (Sandbox Code Playgroud)

$week是一个整数(1,2,3 ......),$ day是一天(太阳,周一,......)或数字,以较容易的为准.方向有点混乱,因为它做了不同的计算.

举个例子,我们来电

get_date(5, 2009, 1, 'Sun', 'forward');

它使用默认值,并获得5月的第一个星期日,即2009-05-03.如果我们打电话

get_date(5, 2009, 2, 'Sun', 'backward');

,它返回五月的最后一个星期日,即2009-05-24.

php datetime

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

在Objective C中填充对象

我试图在for循环中动态填充字典,如下所示:

伪代码

myObject = new Object
myDict = new Dictionary
for(int i; i < 10;i++)
  myObject.value1 = new data from somewhere
  myObject.value2 = new data from somewhere
  myDic = value:myObject key:i
end for
Run Code Online (Sandbox Code Playgroud)

所以我的问题是在objective-c中,我可以继续分配新数据myObject而不是每次都在循环中释放它吗?我仍然试图在objective-c中找出内存管理.

cocoa objective-c

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

数据库复制还是镜像?

SQL Server 2005中的复制和镜像有什么区别?

replication sql-server-2005

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