我最近安装了Windows 7,我得出了一个结论.虽然Active Sync很旧并且效果不佳,但确实有效.在适当的仪式和咒语之后,我可以连接到我的设备和模拟器.
我得出的另一个结论是Windows Mobile Device Center比 Active Sync更糟糕.我无法让它可靠地连接到我的模拟器(是的,我已经将连接类型设置为DMA),尽管我有多少次摇篮和解开.(虽然模拟器连接到Visual Studio调试器就好了.)
通过主动同步,我必须在支撑仿真器后手动按下连接设置中的连接按钮.我可以在Windows Mobile Device Center中看到的最大变化是他们删除了该按钮.
有没有办法让Active Sync在Windows 7上运行,所以我不必处理这个问题?或者有没有办法让它更可靠地连接到Windows Mobile Device?
我正在编写一个跨平台的c ++应用程序,需要连接到Exchange服务器并使用ActiveSync下载邮件.
是否有可用于ActiveSync的库(最好是开源)?
我不能使用Windows API,因为它们不能在Linux和Mac上运行.
我正在尝试在我正在开发的ActiveSync客户端中实现证书身份验证.使用证书身份验证的代码可能有效,但截至目前服务器,或者更准确地说,iOS库对服务器响应的解释似乎对我不正确.这是我的代码:
- (void)connection:(NSURLConnection *)connection didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge
{
NSURLProtectionSpace *protectionSpace = [challenge protectionSpace];
NSString *authenticationMethod = [protectionSpace authenticationMethod];
if ([authenticationMethod isEqualToString:NSURLAuthenticationMethodClientCertificate])
{
NSURLCredential* credential = [ self buildCredentialClientCert];
if ( credential == nil )
{
[[challenge sender] cancelAuthenticationChallenge:challenge];
}
else
{
[[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
}
}
else if ([authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust])
{
.... // do other stuff
Run Code Online (Sandbox Code Playgroud)
问题是,即使我知道服务器支持客户端证书身份验证,当我设置断点时authenticationMethod
,总是设置为NSURLAuthenticationMethodServerTrust
.
原始HTTPS服务器响应包含以下内容:
错误代码:403禁止.该页面需要客户端证书作为身份验证过程的一部分.如果您使用的是智能卡,则需要插入智能卡以选择合适的证书.否则,请与服务器管理员联系.(12213)
我的问题是,什么决定如果认证挑战是NSURLAuthenticationMethodServerTrust
对NSURLAuthenticationMethodClientCertificate
?
我有一种情况,我想连接到一个电子邮件服务器,其唯一的邮件/日历服务是Activesync(它是一个Exchange服务器).暴露的唯一网络界面是"OWA light",这是可怕的.
我想找到一种方法来同步来自此Exchange的邮件,以便它出现在桌面邮件客户端(或Webmail客户端,如果有任何工作方式 - gmail不支持订阅的activesync - 它发布它的邮件为activesync,这不是我想要的).
基本上我想要的ascii艺术是:
Exchange => Activesync <=>客户端应用程序
有很多移动客户端应用程序可以执行此操作,但我正在寻找可以作为订阅者处理activesync的桌面或Webmail客户端(IMAP的工作方式).
感谢您的任何参考或想法!
史蒂夫
email email-client desktop-application client-side activesync
有没有人知道有什么好的库可以将Exchange ActiveSync协议实现到C#应用程序中,这样我就可以将电子邮件与应用程序同步到服务器(例如m.google.com
)?
我已经多次看过这个问题,但到目前为止,答案非常机器人和令人失望:
EWS与EAS有什么区别?
现在,大多数网站都提供以下内容:"一个是移动设备协议,另一个是Web服务." 好吧,没有屎.这是真正的问题:
是什么阻止某人设置EWS的下降库,任何移动应用程序或操作系统都可以使用而不是向MS支付ActiveSync的每用户许可费用?EWS太贵了,因为它是SOAPy而不是RESTful吗?ActiveSync是否在缓存和一般逻辑方面做了更多的繁重工作?EAS是否具有EWS没有的功能(共享日历或其他一些功能?)是否真的只是移动操作系统需要确保支持Exchange 03?
我相信他们每个人都有更好的点,使他们与众不同,但我认为大多数人在问这个问题时会遇到的问题是"如果EWS可以做同样的事情,我为什么要支付EAS?如果我我愿意自己写客户端吗?"
我有一个在Windows Mobile上运行的.Net Compact应用程序,我希望能够通过ActiveSync连接到在"主机"机器上运行的web服务(即PDA插入的桌面),但我不能知道主机的IP地址.如何在PDA上找到桌面PC的ip?
我在ActiveSync上使用TCP/IP从Windows CE设备连接到Windows XP桌面.无论桌面服务器应用程序是否实际运行,WinSock connect()函数总是成功.
以下简化代码演示了此问题:
#include "stdafx.h"
#include <Winsock2.h>
int _tmain(int argc, _TCHAR* argv[])
{
const int Port = 5555;
const char * HostName = "ppp_peer";
WSADATA wsadata;
if (WSAStartup(MAKEWORD(1, 1), &wsadata) != 0)
return 1;
struct hostent * hp = gethostbyname(HostName);
if (hp == NULL)
return 1;
struct sockaddr_in sockaddr;
memset(&sockaddr, 0, sizeof(sockaddr));
sockaddr.sin_family = AF_INET;
sockaddr.sin_addr.s_addr = ((struct in_addr *)(hp->h_addr))->s_addr;
sockaddr.sin_port = htons(Port);
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == SOCKET_ERROR)
return 1;
int result = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,该程序将在连接Windows Mobile设备时运行,根据Microsofts文档,我们必须:
如果您希望在Windows Mobile设备连接到台式计算机时自动执行RAPI应用程序,请不要将应用程序置于StartUp中或允许其自动运行.而是将其注册为在设备连接时由ActiveSync自动运行.有关更多信息,请参阅MSDN.
我该如何做到这一点?
我在改造 2 时遇到问题。我正在向 Microsoft EAS 服务器发送一些数据,但 20 秒后收到响应。为什么我知道这是改造问题?因为无需改造即可正常工作。
D/OkHttp: --> POST https://{my_host}/Microsoft-Server-ActiveSync?Cmd=Provision&User={myuser}&DeviceId=837bc6c5690b40b98ab55f7a2231e50c&DeviceType={mydevicetype} http/1.1
D/OkHttp: Content-Type: application/vnd.ms-sync.wbxml
D/OkHttp: Content-Length: 456
D/OkHttp: Authorization: Basic XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
D/OkHttp: MS-ASProtocolVersion: 14.1
D/OkHttp: Connection: keep-alive
D/OkHttp: User-Agent: MyUserAgent
D/OkHttp: X-MS-PolicyKey: 0
D/OkHttp: [3,1,106,0,0,14,[...more here...],88,77,76,0,1,1,1,1] // <--- body
D/OkHttp: --> END POST (456-byte body)
Run Code Online (Sandbox Code Playgroud)
20秒后(看起来我在20+正常接收时间后收到响应 - 在这种情况下:20596ms):
D/OkHttp: <-- 200 OK https://{my_host}/Microsoft-Server-ActiveSync?Cmd=Provision&User={myuser}&DeviceId=837bc6c5690b40b98ab55f7a2231e50c&DeviceType={mydevicetype} (20596ms)
D/OkHttp: Content-Type: application/vnd.ms-sync.wbxml
D/OkHttp: request-id: {request_id}
D/OkHttp: Set-Cookie: {cookie_data}
D/OkHttp: X-CalculatedBETarget: {target}.local
D/OkHttp: X-MS-BackOffDuration: L/-470
D/OkHttp: X-DiagInfo: EXCHANGEHA
D/OkHttp: X-BEServer: EXCHANGEHA
D/OkHttp: Set-Cookie: …
Run Code Online (Sandbox Code Playgroud)