我试图从我的代码中调用Paypal api.我设置了沙盒帐户,当我使用curl但它的代码工作方式不同时,它会起作用,返回401 Unauthorized.
这是Paypal记录的curl命令
curl https://api.sandbox.paypal.com/v1/oauth2/token -H "Accept: application/json" -H "Accept-Language: en_US" -u "A****:E****" -d "grant_type=client_credentials"
Run Code Online (Sandbox Code Playgroud)
更新:显然.Credentials
不会做的伎俩,而是Authorization
手动设置标题工作(见代码)
这是代码(修剪到它的本质):
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://api.sandbox.paypal.com/v1/oauth2/token");
request.Method = "POST";
request.Accept = "application/json";
request.Headers.Add("Accept-Language:en_US")
// this doesn't work:
**request.Credentials = new NetworkCredential("A****", "E****");**
// DO THIS INSTEAD
**string authInfo = Convert.ToBase64String(System.Text.Encoding.Default.GetBytes("A****:E****"));**
**request.Headers["Authorization"] = "Basic " + authInfo;**
using (StreamWriter swt = new StreamWriter(request.GetRequestStream()))
{
swt.Write("grant_type=client_credentials");
}
request.BeginGetResponse((r) =>
{
try
{
HttpWebResponse response = request.EndGetResponse(r) as HttpWebResponse; // …
Run Code Online (Sandbox Code Playgroud) 更新: 下面的解决方案.
我有一个滑块(<input type='range'../>
),我在拇指内有一个值.这是一个粗略的表示:
______
_______/ \______
|______: [42] :______|
\______/
Run Code Online (Sandbox Code Playgroud)
问题是拇指不支持内容所以我将值放在a中<div><span class='noselect'>[42]</span></div>
并left: ?px
使用javascript 计算一些以移动div以匹配拇指.
这整个解决方案工作得相当好......除了文本捕获用于拇指的事件,因此滑块不会移动而是正在选择文本.
我添加了css来阻止实际的文本选择:
.noselect {
-moz-user-select:-moz-none;
-moz-user-select:none;
-o-user-select:none;
-khtml-user-select:none;
-webkit-user-select:none;
-ms-user-select:none;
user-select:none;
display: block;
}
Run Code Online (Sandbox Code Playgroud)
但上面的CSS并不能防止鼠标事件被文本而不是拇指消耗.
最重要的是,我尝试将事件转移到拇指:
$(document).on('click touchstart touchend touchmove', '.noselect', function (event) {
var slider = $(this).parents('.slider').first();
if (slider && slider.length > 0) {
slider.trigger(event.type, event);
event.stopPropagation();
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
上面的js捕获文本事件,但试图在它下面的滑块上触发它不会做任何事情.
问题是:如何使该值发生并且不干扰用户交互?
拇指本身的样式就像一个圆圈:
input[type="range"]:disabled::-webkit-slider-thumb {
-webkit-appearance: none;
background-color: #404040;
width: 60px;
height: 60px;
border-radius: 30px;
background-color: …
Run Code Online (Sandbox Code Playgroud) 我已经将挑战响应方案实现为Ajax处理程序.出于某种原因,它在工作几个月后停止工作.调查问题表明,Context.Session[KEY]
在挑战和响应呼叫之间失去了价值.
我把Session_Start
和Session_End
(和其他几个)在Global.asax.cs中的方法与一些记录那里,我看到一个新的在session_start事件与相同的会话ID解雇,没有Session_End中的事件
问题是:为什么IIS会丢失会话值?
更新:我尝试切换到SQLServer会话,但行为没有变化.在极少数情况下,会话按预期工作,不确定原因.我尝试了所有"会话丢失变量"故障排除指南我发现无效
更新2:我将问题缩小到缺少会话cookie,但修改my.browsers配置后几次尝试都没有解决问题.当我从浏览器调用ajax处理程序时,会话cookie"ASP.NetSessionId"按预期显示.我将站点和服务器的IIS设置中的cookie名称更改为"SessionId",但即使重新启动服务器,我仍然看到ASP.NET.我仍然想把这个赏金给予那些知道发生了什么的人.同时我通过在代码中设置会话cookie来解决这个问题.
Login.ashx的伪代码:
string login = GetParameter("login", context);
string passhash = GetParameter("pass", context);
string challenge = "" + Context.Session["CHALLENGE"];
if (!string.IsNullOrEmpty(challenge))
{
// this is the 'response' part
string challengeResponse = Crypto.GetChallengeResponse(Challenge, UserFromDB.PassHash);
if (challengeResponse == passhash)
{
// Great success, challenge matches the response
Log.I("Success");
return "SUCCESS";
}
else
{
Log.W("Failed to respond");
return "FAILED TO RESPOND";
}
}
else
{
// if passed login or session-stored challenge are empty …
Run Code Online (Sandbox Code Playgroud) 以下是基于VSTO的Word插件的代码(可读性简化版).
问题是,如果我打开了两个文档,例如文档和模板,我的插件有助于开发模板并正常工作,直到模板关闭并在同一个Word实例中重新打开(文档文件使Word保持活动状态).一旦发生这种情况,即使附加了侦听器(使用调试器确认),也不会收到SelectionChange事件.
这段代码有什么问题吗?附加选择更改事件的任何其他方式?
void Application_DocumentOpen(Word.Document Doc)
{
// this method gets called as intended
Document vstoDoc = Globals.Factory.GetVstoObject(doc);
vstoDoc.SelectionChange += new Microsoft.Office.Tools.Word.SelectionEventHandler(ThisDocument_SelectionChange);
}
private void Application_DocumentBeforeClose(Word.Document doc, ref bool Cancel)
{
// this one also gets called as intended
Document vstoDoc = Globals.Factory.GetVstoObject(doc);
vstoDoc.SelectionChange -= new Microsoft.Office.Tools.Word.SelectionEventHandler(ThisDocument_SelectionChange);
}
void ThisDocument_SelectionChange(object sender, SelectionEventArgs e)
{
// this doesn't get called if the document is closed and open again within the same Word instance
Log("Selection changed");
}
Run Code Online (Sandbox Code Playgroud)
更新:这似乎是VSTO的错误.
附加到其他事件工作正常,我可以使用ContentControlOnEnter/Exit:
vstoDoc.SelectionChange += ThisDocument_SelectionChange; …
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,我想要显示页面A,用户可以从中导航到页面B或C,从B返回到A或C,从C返回到A,即使用户通过B获取到C.
目前,当我执行B-> C转换时,我首先PopAsync
回到A,然后我做到PushAsync
了C,所以'
问题是:有没有一种文明的方式来设置这个导航方案,同时仍然依靠内置的导航来跟踪导航堆栈 - 我不想自己这样做并使用PushModalAsync
.
请注意(如图中所示)A和C不是整个导航堆栈的终点,在A之前和之后都有页面,因此必须保留堆栈.
我想在按下textview(x)时执行一些操作(重置搜索).
这样的事情:iPhone按下UITextField/UISearchBar的清除按钮时执行操作但我不知道如何使用Xamarin
我有这个:
tbkSearchOrder.ShouldReturn += (textField) => {
ComboViewCtl.OnOrdersFiltered (this, tbkSearchOrder.Text);
return true;
};
Run Code Online (Sandbox Code Playgroud)
它响应键盘上按下的"搜索"按钮.UITextField有几个类似的方法,但它们是方法,而不是事件或操作或委托.理想情况下,我会避免为该文本字段编写一个大的Delegate类.
以前我手动制作了Card.IO绑定.它正在编译,使用它的项目也是如此,但它会经常崩溃.
现在我尝试从头开始使用ObjectiveSharpie重新创建绑定.绑定项目编译,但当我从另一个项目引用它时,我得到如下所示的编译器错误.
它将AVFoundation框架项显示为"未定义的符号......",因此在Xamarin的IOS Build选项中,我有"-cxx"选项.我尝试了各种方法组合来向项目添加框架: - 在CardIO绑定项目中修改[assembly:LinkWith(...,Frameworks ="...")].这导致我的主项目中无法识别的CardIO命名空间 - 添加了-gcc_flags"-framework ...".这导致来自编译器的"找不到框架"消息我最终通过包含a来解析AVFoundation using AVFoundation
,然后在其类中请求类型名称,因此链接器不会优化它 - 我书中的丑陋黑客.
在下面的错误中,看起来有更多的框架丢失,除此之外,我相信std::...
应该通过使用"-cxx"参数来解决这些问题.
我没有想法如何使这个绑定编译和正常工作.
Undefined symbols for architecture armv7:
"_AudioServicesPlayAlertSound", referenced from:
-[CardIOCameraViewController vibrate] in libCardIO.a(CardIOCameraViewController.o)
"_CMGetAttachment", referenced from:
-[CardIOVideoStream captureOutput:didOutputSampleBuffer:fromConnection:] in libCardIO.a(CardIOVideoStream.o)
"_CMSampleBufferGetImageBuffer", referenced from:
-[CardIOVideoFrame process] in libCardIO.a(CardIOVideoFrame.o)
"_CVPixelBufferGetBaseAddressOfPlane", referenced from:
+[CardIOIplImage imageFromYCbCrBuffer:plane:] in libCardIO.a(CardIOIplImage.o)
"_CVPixelBufferGetBytesPerRowOfPlane", referenced from:
+[CardIOIplImage imageFromYCbCrBuffer:plane:] in libCardIO.a(CardIOIplImage.o)
"_CVPixelBufferGetHeightOfPlane", referenced from:
+[CardIOIplImage imageFromYCbCrBuffer:plane:] in libCardIO.a(CardIOIplImage.o)
"_CVPixelBufferGetWidthOfPlane", referenced from:
+[CardIOIplImage imageFromYCbCrBuffer:plane:] in libCardIO.a(CardIOIplImage.o)
"_CVPixelBufferLockBaseAddress", referenced from:
-[CardIOVideoFrame process] in libCardIO.a(CardIOVideoFrame.o) …
Run Code Online (Sandbox Code Playgroud) 我尝试使用StackLayout和Grid创建此页面,但我无法将rightы控件与右侧对齐.也许我应该使用RelativeLayout?但我不知道如何将控制与右侧对齐
这是我的页面:http: //s9.postimg.org/z5ilck6hb/template.png
UPD. 我通过将StackOayout与HorizontalOptions = LayoutOptions.EndAndExpand放到每个网格单元格(在右列中)解决了这个问题
xamarin.ios xamarin.android xamarin windows-phone-8 xamarin.forms
我想从其序列化形式加载证书请求 (CSR) 并对其进行签名。这在纯 .NET 中可能吗?
CSR 如下所示:
-----BEGIN CERTIFICATE REQUEST-----
MIIDejCCAmICAQAwZTE0MDIGCgmSJom....
-----END CERTIFICATE REQUEST-----
Run Code Online (Sandbox Code Playgroud)
它是使用 .NET 4.7.2 生成的CertificateRequest
,类似于这个问题的答案:
Generate and Sign Certificate Request using pure .net Framework
然后将序列化的 CSR 发送到需要创建证书的服务器 - 问题是如何做到这一点。
xamarin ×4
c# ×3
xamarin.ios ×2
.net ×1
asp.net ×1
asp.net-ajax ×1
card.io ×1
certificate ×1
css ×1
html ×1
ios ×1
javascript ×1
jquery ×1
ms-word ×1
paypal ×1
vsto ×1