草庐IT

API安全

全部标签

c# - 如何从 ASP.NET Web API ValueProvider 中的 HTTP POST 请求检索正文值?

我想发送一个HTTPPOST请求,其正文包含构成一篇简单博客文章的信息,没什么特别的。我读过here当您想在WebAPI中绑定(bind)复杂类型(即不是string、int等的类型)时,一个好的方法是创建自定义模型绑定(bind)器。我有一个自定义模型绑定(bind)器(BlogPostModelBinder),它又使用自定义值提供程序(BlogPostValueProvider)。我不明白的是,我应该如何以及在何处能够从BlogPostValueProvider中的请求正文中检索数据?在模型Binder中,这是我认为的正确方法,例如检索标题。publicboolBindModel(

c# - 从 Azure Websites for Google API 中的 p12 证书生成 X509Certificate2 时出现 502 错误

我正在使用ThisGoogleJsonWebToken类以生成访问token,以与对GoogleCalendarAPI的json调用一起使用。当我使用以下内容(使用我的实际服务帐户电子邮件)时,它在我的开发机器上的IISExpress中工作得很好:stringp12Path=HttpContext.Current.Server.MapPath("~/App_Data/certificate.p12");varauth=GoogleJsonWebToken.GetAccessToken("uniquestring@developer.gserviceaccount.com",p12Pat

c# - 从 ASP.NET Web API ASP.NET Core 2 返回 HTML 并获取 http 状态 406

这是对ReturnHTMLfromASP.NETWebAPI的跟进.我按照说明进行操作,但在浏览器中收到错误406。我的代码:[Produces("text/html")][Route("api/[controller]")]publicclassAboutController:Controller{[HttpGet]publicstringGet(){return"Welcome";}...并且,简单地说:publicvoidConfigureServices(IServiceCollectionservices){services.AddMvc();}当我删除Produces行我得

c# - ASP.NET Odata Web API 的错误处理

我很想知道在ODataController中引发异常所遵循的最佳实践是什么。如果您在方法中引发异常,默认情况下它会转换为响应代码500,并且内容包含有关错误的详细信息。我想明确响应代码,并在key无效的情况下发送400。例如:如果输入请求有一个无效的键想返回400的HttpResponseCode并且内容应该有类似于引发异常的错误详细信息。非常感谢您的意见 最佳答案 OData(至少从v3开始)使用specificjson表示错误:{"error":{"code":"Acustomerrorcode","message":{"lan

c# - 从 NuGetV3 API 获取包

我有兴趣用非.NET语言为NuGetv3API编写客户端库。获取包裹所需的请求是什么,响应是什么样的?即获取{包版本}获取{package-version}您还可以链接到涵盖此场景的官方文档吗? 最佳答案 Here是官方的NuGetV3API文档。API由多个协议(protocol)组成,包括:PackageBaseAddress-包含实际包及其list文件的商店(nuspec)。ServiceIndex-客户端用于发现NuGet服务SearchService-客户端用于搜索NuGet包Registration-基于json-LD的

c# - 静态变量的线程安全初始化

我一直在使用这种模式来初始化我的类中的静态数据。它对我来说看起来是线程安全的,但我知道线程问题有多么微妙。这是代码:publicclassMyClass//badcode,donotuse{staticstring_myResource="";staticvolatilebool_init=false;publicMyClass(){if(_init==true)return;lock(_myResource){if(_init==true)return;Thread.Sleep(3000);//someoperationthattakesalongtime_myResource="H

c# - ASP.NET Web API 和 [Serializable] 类

我有一个标有[Serializable]的类。当我从WebAPI返回它时,字段名称都很奇怪。通常返回的JSON是[{"OrderId":797...使用[Serializable]时返回的JSON[{"k__BackingField":797...我不想将其标记为可序列化以使用BinaryFormatter进行缓存。除了编写自定义序列化程序或制作不可序列化的孪生类并编写猴子代码以在两者之间“转换”之外,还有其他方法吗? 最佳答案 您只需要一行代码就可以让Json.NET再次忽略[Serializable]语义:((DefaultCo

c# - 这个操作线程安全吗?

在以下示例中,当单击“提交”按钮时,静态变量Count的值会递增。但是这个操作线程安全吗?使用Appliation对象是执行此类操作的正确方法吗?这些问题也适用于Web表单应用程序。当我点击“提交”按钮时,计数似乎总是在增加。View(Razor):@{Layout=null;}@ViewBag.BeforeCountController:publicclassHomeController:Controller{publicActionResultIndex(){ViewBag.BeforeCount=StaticVariableTester.Count;StaticVariableT

c# - ASP.NET 如何在 Web API 中读取多部分表单数据?

我像这样将多部分表单数据发送到我的WebAPI:stringexample="mystring";HttpContentstringContent=newStringContent(example);HttpContentfileStreamContent=newStreamContent(stream);using(varclient=newHttpClient()){using(varcontent=newMultipartFormDataContent()){content.Add(stringContent,"example","example");content.Add(fi

c# - 检查对象是否为 null 并在同一个 if 语句中比较对象的属性值是否安全?

请参阅线程标题。我是否可以安全地执行类似的操作而不用担心NullReferenceException,或者不能保证这些bool表达式将从左到右求值?//canthisthrowanNRE?if(obj==null||obj.property==value){//dosomething} 最佳答案 他们将从左到右进行评估,保证。所以是的,它是安全的。Theconditional-ORoperator(||)performsalogical-ORofitsbooloperands,butonlyevaluatesitssecondope