Tag: asp.net web api

如何生成动态C#图像?

基本上,我想重新编写以前用PHP编写的VisualCube 。 我研究了GDI +,试图找到处理C#,图形等的书籍。 一些相关的东西只针对WinForms或WPF,而我理想的是想要创建一个提供图像的WebAPI或WCF服务。 我可以使用哪些技术? 如果是GDI +,有人可以在WebAPI / WCF中为我提供用法吗? 我将通过MVC4访问WebAPI / WCF。

在N层应用程序中配置自动映射

我有一个N层应用程序,如下所示 MyApp.Model – 包含edmx和数据模型 MyApp.DataAccess – 使用EF的存储库 MyApp.Domain – 域/业务模型 MyApp.Services – 服务(类库) MyApp.Api – ASP.NET Web API 我使用Unity作为我的IoC容器,使用Automapper进行OO映射。 我的DataAccess图层引用了包含所有Data对象的Model层。 我不想在我的Api层中引用我的模型项目。 因此,从服务层返回DomainObjects(业务模型)并映射到API层中的DTO(DTO在API层中)。 我在API层中将domainModel配置为DTO映射,如下所示 public static class MapperConfig { public static void Configure() { Mapper.Initialize( config => { config.CreateMap(); config.CreateMap(); //can’t do this as I do not have reference for State which is in MyApp.Model //config.CreateMap(); […]

身份服务器4令牌未在使用Identity Server 3的.NetFramework Api中validation

在我的身份服务器应用程序中使用idsv4并在端口“5000”上运行有一个客户端 new Client { ClientId = “client”, // no interactive user, use the clientid/secret for authentication AllowedGrantTypes = GrantTypes.ClientCredentials, // secret for authentication ClientSecrets = { new Secret(“secret”.Sha256()) }, // scopes that client has access to AllowedScopes = { “api1” } }` 在我的.Net Framework Api的启动类中使用端口号“7001”: app.UseIdentityServerBearerTokenAuthentication( new IdentityServerBearerTokenAuthenticationOptions { Authority = “http://localhost:5000”, ValidationMode = ValidationMode.ValidationEndpoint, […]

WebAPI OData操作示例 – CheckOut和CheckOutMany操作之间的区别

我一直在忙着对T4模板进行自定义,这样我就可以从.NET客户端进行强类型的OData动作调用。 它可能是我创建的第一个开源的东西:) 无论如何,我正在测试和开发针对称为“ODataActionsSample”的OData操作的WebAPI OData示例。 对于那些想在家里玩的人,可以在http://aspnet.codeplex.com/SourceControl/latest#Samples/WebApi/ODataActionsSample/找到样本。 该示例还有几个有趣的操作。 目前我正在尝试支持这两个基于集合的操作,因为我已经控制了其他人。 这两个操作是CheckOut操作(接受$ filter查询的覆盖)和CheckOutMany操作(接受电影ID的集合)。 样本中的代码…… // CheckOut action // URI: ~/odata/Movies/CheckOut // Shows how to bind to a collection, instead of a single entity. // This action also accepts $filter queries. For example: // ~/odata/Movies/CheckOut?$filter=Year eq 2005 var checkOutFromCollection = modelBuilder.Entity().Collection.Action(“CheckOut”); checkOutFromCollection.ReturnsCollectionFromEntitySet(“Movies”); // CheckOutMany action // URI: ~/odata/Movies/CheckOutMany // Shows […]

如何使用不允许异步控制器操作的CMS处理异步API调用?

我一直在使用async / await,而且我所阅读的大多数内容都是“不要阻止异步代码” ,但控制台应用程序中的main函数除外。 我发现自己无法遵循这个简单的规则:( 我的应用程序在很大程度上取决于WebAPI层。 我在MVC应用程序中使用的客户端使用System.Net.Http.HttpClient上的async方法来调用API方法。 目前我正在以两种方式处理它。 在某些地方,我们在调用客户端后立即获得结果: //WebAPI Client public object GetSomething(int id) { var task = _client_GetSomethingFromApiAsync(id); var result = task.Result; return result; } 在其他人使用async一直到控制器。 我正在使用SiteFinity,不能使用异步控制器操作,所以我最终得到这样的东西: //WebAPI Client public Task GetSomethingAsync(int id) { return _client_GetSomethingFromApiAsync(id); } //Domain Service public Task GetSomethingDomainServiceAsync(int id) { return _service.GetSomethingAsync(id); } //Controller public JsonResult GetSomethingControllerAction(int id) { […]

如何更改Asp.NET MVC中的Controller命名约定?

我开始在asp.NET MVC中开发。 我需要将Web API与View项目分开,我希望WebAPI控制器具有来自View项目的不同命名约定,以便从用于视图的控制器轻松识别什么是webapi控制器。 在这两个项目中,默认约定是name +’Controller’。 如果有一种方法可以在webapi中更改它,例如,而不是’WebAPiController’,我希望名称约定为’WebAPICtrl’ou’WebAPiService’。 我发现它关闭的问题是: 在ASP.NET MVC中更改控制器名称约定 如何在Asp.net mvc 5中存档此要求?

如何从WebAPI传递pdf并从MVC控制器读取pdf?

我有一个应该返回PDF的Web API服务。 然后我试图调用该WebAPI方法来读取PDF。 这是我的API方法: [HttpPost] [Route(“GetTestPDF”)] public HttpResponseMessage TestPDF() { HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK); response.Content = new StreamContent(new FileStream(@”C:\MyPath\MyFile.pdf”, FileMode.Open, FileAccess.Read)); response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue(“attachment”); response.Content.Headers.ContentDisposition.FileName = “MyFile.pdf”; response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(“application/pdf”); return Request.CreateResponse(HttpStatusCode.OK, response); } 但是,当我去阅读回复时,我没有看到pdf内容。 我不知道我在哪里出错。 控制器方法: public ActionResult GetPDF() { var response = new HttpResponseMessage(); using (HttpClient httpClient = new HttpClient()) […]

从VBScript调用WebApi方法

我的控制器中有以下web api方法 public HttpResponseMessage PostUpdateCardStatus(CardholderRequest cardholderRequest) { var cardId = cardholderRequest.CardId; switch (cardholderRequest.Action) { case “Enable”: break; case “Disable”: break; } var cardholderResponse = new CardholderResponse(cardholderRequest.RequestId) { Status = “OK” }; var response = Request.CreateResponse(HttpStatusCode.OK, cardholderResponse); return response; } 这就是我从.NET控制台应用程序调用它的方式 using (var client = new HttpClient()) { client.BaseAddress = new Uri(“http://localhost:55208/”); var request = new […]

HttpClient与客户端证书一起重用

我已经在几个地方(比如这里 , 这里或这里 )读过, 在请求之后直接处理HttpClient是一种不好的做法,最好在所有请求完成后处理它,以允许重用连接。 为了尝试这一点,我创建了一个HttpClient实例并以这种方式添加到我的类中的静态字段: public class Test { private static X509Certificate2 _certificate; private static HttpClient HttpClient { get; set; } … public Test() { … if (HttpClient == null) { LoadCertificate(); ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3; var handler = new WebRequestHandler(); handler.ClientCertificates.Add(_certificate); HttpClient = new HttpClient(handler, false); } } […]

如何使用AngularJS删除一个项目后刷新项目列表?

我是AngularJS领域的新手,我正在尝试将其与ASP.NET Web API一起使用。 我现在正在努力使用删除function。 用户应该能够从项目列表中删除项目,并且当他成功删除项目时,应该在删除后立即更新(或刷新)列表。 我已经实现了删除function,但是删除后列表没有更新,我不知道为什么。 这是Web API中的删除function代码: // DELETE api//5 public void Delete(int id) { itemRepository.DeleteItem(id); } 这是AngularJS控制器代码: app.controller(‘itemsController’, [‘itemsFactory’, ‘itemFactory’, function (itemsFactory, itemFactory) { var vm = this; vm.message = “Welcome to Items Page”; vm.Items= itemsFactory.query(); // callback for ng-click ‘deleteItem’: vm.deleteItem = function (aId) { itemFactory.delete({ id: aId }); vm.Items= itemsFactory.query(); }; […]