所以这让我疯狂了一天.我正在尝试与xamarin.android上的REST API交谈但由于某种原因我收到此错误:
InnerException {Mono.Security.Protocol.Tls.TlsException: Invalid
certificate received from server. Error code: 0xffffffff800b010a at
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.RemoteValidation
(Mono.Security.Protocol.Tls.ClientContext context, AlertDescription
description) [0x00000] in :0 at
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.validateCertificates
(Mono.Security.X509.X509CertificateCollection certificates) [0x00000]
in :0 at
Mono.Security.Protocol.Tls.Handshake.Client.TlsServerCertificate.ProcessAsTls1
() [0x00000] in :0 at
Mono.Security.Protocol.Tls.Handshake.HandshakeMessage.Process ()
[0x00000] in :0 at
Mono.Security.Protocol.Tls.ClientRecordProtocol.ProcessHandshakeMessage
(Mono.Security.Protocol.Tls.TlsStream handMsg) [0x00000] in :0 at
Mono.Security.Protocol.Tls.RecordProtocol.InternalReceiveRecordCallback
(IAsyncResult asyncResult) [0x00000] in :0
} Mono.Security.Protocol.Tls.TlsException
经过一些研究后,我发现这与我正在谈论的服务器丢失的证书有关(如果我错了,请纠正我).所以我将SSL证书添加到Mac上的钥匙串中.我还运行了Mozilla命令来安装默认证书.
不幸的是,这仍然无效.在Windows上,与API的连接就像一个魅力.从我读到的这是因为Windows有自己的CA商店和一些默认证书.
我试图在我的ASP.NET Core 1.0(vNEXT)项目中使用Session.这就是我的代码的样子.
public class Startup
{
// For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
//-- Enabled MVC Pattern
services.AddMvc();
//-- Enable Session handling
services.AddCachingServices();
services.AddSessionServices();
}
public void Configure(IApplicationBuilder app)
{
//-- User MVC
app.UseMvc();
//-- Use Session
app.UseSession();
app.UseInMemorySession();
}
}
Run Code Online (Sandbox Code Playgroud)
但现在我被卡住了.我不知道如何在我的控制器或页面中设置或从会话中获取数据.我试过了.Context.Session.但它没有实例化,因此当我尝试访问该属性时会抛出一个invalidexception.
任何拥有如何使其工作的代码示例的人.
提前致谢.
编辑:
这是screendump我的控制器中base.context.Session的样子.

我没有SetString()和GetString(),只有Set()和TryGet()......方法......
这就是我的project.json文件的样子.
"version": "1.0.0-*",
"dependencies": {
"Microsoft.AspNet.Server.IIS": "1.0.0-beta3",
"Microsoft.AspNet.Mvc": "6.0.0-beta3",
"Microsoft.AspNet.Session": "1.0.0-beta3"
},
Run Code Online (Sandbox Code Playgroud) 所以我试图将我的新Android应用程序发布到Google PlayStore.从阅读本教程,我了解到我必须在将应用程序发布到PlayStore之前对其进行签名.我和教程完全一样.将其上传到PlayStore后,我尝试在我的设备上安装该应用程序.我收到消息"包文件未正确签名".这是strage ..在xamaran工作室,我收到消息"包成功签名".
如果我尝试从设备上的apk安装应用程序,我收到消息"无法安装"
这可能有什么问题?
我在Mac上使用Xamarin Studion.
目前,我们正在为我们公司开发跟踪和追踪应用程序.为了使这个应用程序更安全,我们想在第一次启动时询问用户安全代码.此安全代码很可能是客户编号.
用户使用其跟踪和跟踪代码向服务器发送请求,服务器将检查安全代码和跟踪和跟踪代码是否链接.
我的问题是在应用程序中存储安全代码的最佳方法是什么,以便应用程序可以要求将跟踪和跟踪发送到服务器.我们希望用户仅在首次启动时输入安全代码.
[[NSUserDefaults standardUserDefaults] boolForKey:@"security code"];
Run Code Online (Sandbox Code Playgroud)
这会是一个选择吗?
因此,我正在为我的同事创建一个连接库,以节省他当前项目的时间.我的同事将在他的c#应用程序中使用此库连接到其他api.在库中,我为每个请求创建了Handler(GET/POST/PUT/DEL).当他的应用程序与我的库进行对话时,我将返回如下响应:
return client.PostAsync(url, content).Result;
Run Code Online (Sandbox Code Playgroud)
这将从其余的api返回一个动态对象.
今天他使用我的图书馆,由于某种原因无法与他的应用程序结合使用.我告诉他使用var,它会像这样工作:
var x = API.CreateTraject(parameter1,parameter2);
Run Code Online (Sandbox Code Playgroud)
他拒绝使用var并最终花了大约40分钟来确定如何在没有它的情况下让它工作.然后他指责我返回一个动态对象并且他永远不会使用var因为明显更好所以他告诉我.
我正常作为移动开发人员(IOS/Android)工作,我一直使用var.
现在我的问题是:
使用var真的很糟糕吗?我应该在我的库中转换响应,以便他可以在他的应用程序中明确键入它吗?在我看来,我宁愿使用var并节省一些时间,然后花40分钟尝试去明确.
所以我的活动中有一个列表视图和一个gridview.两者都有定制适配器.如果执行DragAction.Drop,我会显示警报以确认操作.如果用户确认这一点,我将更改de数据库中的一些数据.现在数据已更改我需要刷新listview.该方法已存在但属于活动的一部分.我执行警报以及需要在适配器中执行的其他操作.所以我需要告诉活动,完成了drop的操作.因此活动可以调用refresh方法.
这是我在适配器中的DragAction.Drop的代码:
case DragAction.Drop:
truckNumber = e.Event.ClipData.GetItemAt (0).Text;
truckLabelText = e.Event.ClipDescription.Label;
AlertDialog.Builder alertBuilder = new AlertDialog.Builder (context);
alertBuilder.SetTitle ("Please confirm");
alertBuilder.SetMessage ("Are you sure you want to assign Truck: " + truckNumber + " to Dock: " + dockName.Text + "?");
alertBuilder.SetPositiveButton ("Yes", async delegate {
currentTruck.SetText (truckNumber, TextView.BufferType.Normal);
truckLabel.SetText (truckLabelText, TextView.BufferType.Normal);
await _DataLayer.changeTruckStatusCode (Convert.ToInt32 (truckNumber), 3);
});
alertBuilder.SetNegativeButton ("No", delegate {
});
alertBuilder.Show ();
e.Handled = true;
break;
}
};
dockName.SetText (item.name.ToString (), TextView.BufferType.Normal);
currentTruck.SetText ("", TextView.BufferType.Normal);
truckLabel.SetText ("", …Run Code Online (Sandbox Code Playgroud) android ×2
c# ×2
xamarin ×2
asp.net-core ×1
code-signing ×1
coding-style ×1
gridview ×1
ios ×1
iphone ×1
mono ×1
objective-c ×1
security ×1
session ×1
ssl ×1