Tag: rest

WIF身份委派给WebAPI REST服务

我读过这篇文章: 使用AD FS 2.0的身份委派分步指南 ,介绍如何使用WIF从ASP.NET应用程序到后端WCF服务执行身份委派。 我目前有一个ASP.NET WebAPI REST服务,我希望能够使用身份委派从我的ASP.NET应用程序调用,但我找不到任何有关如何实现此目的的信息。 上面提到的technet文章使用CreateChannelActingAs使用调用用户的安全令牌创建到WCF服务的通道,但显然这种方法不适用于REST API。 任何人都可以指向我任何文章或提供如何使用WIF将身份委托给我的REST服务的描述吗? 我的WebAPI REST服务应用程序已经在Thinktecture的这个库的帮助下使用WIF身份validation进行设置和工作。

Type是接口或抽象类,无法实例化。 c#发送一个包含抽象对象列表的对象

我有一个抽象的超类“ 出版物 ”,它有两个派生类拍卖和购买 。 此外,我有一个类别 ,其中包含一个出版物列表。 在我的Rest服务器端,我发送了一个Category列表,在客户端,我收到了这个Category列表,并尝试将该对象转换为Categories列表。 问题是当我尝试转换对象时,我得到以下错误: 无法创建FrontOffice.Models.Publication类型的实例。 Type是接口或抽象类,无法实例化。 路径'[0]。出版物[0]。价格’ 我将在下面粘贴,我正在使用的代码。 //Rest Server Controller public IEnumerable GetAllCategory() { return listCategory; } //Category Class public class Category { public string Name { get; set; } public List Publications { get; set; } } //Publication Entity [DataContract] [KnownType(typeof(Auction))] [KnownType(typeof(Buyout))] public abstract class Publication { [DataMember] public […]

如何让JWT在Autorest生成的SDK中工作? (ASP.NET Core 2.0)

我希望能够使用用户名和密码登录我的身份数据库并检索JWT。 然后我想使用JWT从我的API安全地访问数据。 我发现VS2017生成的SDK代码使用了旧版本的autorest,因此我已切换到使用Azure Autorest api和SDK都是ASP.NET Core 2.0 要生成我使用的SDK AutoRest -mynamespace mytrack.Client -CodeGenerator CSharp -Modeler Swagger -Input swagger.json -PackageName mytrack.client -AddCredentials true 版本显示为 AutoRest code generation utility [version: 2.0.4262; node: v8.11.2] 我把我的考试写成了 using System; using System.Threading.Tasks; using Microsoft.Rest; using Microsoft.VisualStudio.TestTools.UnitTesting; using Newtonsoft.Json.Linq; using swagger; // my name space from the autorest command, not to be confused […]

从WCT Restful服务中使用FileStream

我创建了一个WCF Restful服务,其代码如下: 接口: [ServiceContract] public interface ISIGService { [OperationContract] [WebInvoke(Method = “GET”, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, UriTemplate = “GetMultimedia/{id}”)] Stream GetMultimedia(string id); } 实现此服务的代码: public Stream GetMultimedia(string id) { string filePath = MultimediaBLL.GetFilePath(int.Parse(id)); if (string.IsNullOrEmpty(filePath)) return null; try { FileStream multimediaFileStream = File.OpenRead(filePath); return multimediaFileStream; } catch (Exception ex) { Console.WriteLine(“Not able to […]

C#如何强制重用经过身份validation的Http连接?

我无法重复使用我的Http连接。 HttpWebRequest.KeepAlive设置没有区别。 我发现这篇文章说如果你有NTLM身份validation,那么使用UnsafeAuthenticatedConnectionSharing = true。 所以我将它设置为true并且仍然具有相同的TCP连接群,并且没有类似于重用.. 有什么想法吗? 对不起,我不知道什么是pastebin。 这是日志的片段我做了2次调用服务。 出于某种原因的第一次呼叫是在没有身份validation的情 响应是未授权和连接:关闭。 然后它由系统重新提交,但不再保持活动状态,响应正常,但仍然是Connection:Close。 不幸的是,出于安全原因,我无法粘贴整个日志。 System.Net Information: 0 : [5988] Associating HttpWebRequest#64923656 with ConnectStream#51393439 System.Net Information: 0 : [5988] HttpWebRequest#64923656 – Request: GET /v1.0/xxxxxx/xxxx/ HTTP/1.1 System.Net.Sockets Verbose: 0 : [5988] Socket#52727599::Send() System.Net.Sockets Verbose: 0 : [5988] Data from Socket#52727599::Send System.Net.Sockets Verbose: 0 : [5988] 00000000 : … […]

Ivona请求签名问题 – 签名不匹配(AWS签名版本4)

我正在尝试基于此documnent实施Ivona请求签名 一切正常,所有结果都与示例值匹配,但签名结果除外。 所以签名的结果是cf1141e33a8fbba23913f8f36f29faa524a57db37690a1b819f43bbeaabf3b76,但在文件中它等于2cdfef28d5c5f6682280600a6141a8940c608cfefacb47f172329cbadb5864cc 是Ivona文件中的错误还是错误? 下面是我使用的C#代码: class Program { static void Main() { try { Console.WriteLine(SendIvonaRequest()); } catch (Exception ex) { Console.WriteLine(ex.Message); } } private static string SendIvonaRequest() { var date = new DateTime(2013, 09, 13, 09, 20, 54, DateTimeKind.Utc); const string algorithm = “AWS4-HMAC-SHA256”; const string regionName = “eu-west-1”; const string serviceName = “tts”; const […]

在WCF Rest端点中使用参数“params string ”

我想定义一个OperationContract,我可以传递任意数量的字符串参数。 值应解释为字符串数组。 是否有可能在OperationContract中使用此类型的参数并在UriTemplate中定义它? [ServiceContract] public interface IRestService { [OperationContract] [WebGet(UriTemplate = “operations/{values}”)] void Operations(params string[] values); }

ASP.NET Core在不允许方法时返回自定义响应

我正在使用ASP.NET Core来构建REST服务 如果用户尝试使用不支持的方法请求端点,我需要返回自定义响应代码。 例如,端点localhost / api / test仅支持GET方法,但用户使用POST方法请求它。 我需要返回404响应和自定义正文。 如何使用ASP.NET Core执行此操作? UPD: 可能我错误地提出了我的问题。 如果不允许某个方法,我需要ASP Core返回405响应代码和自定义JSON主体。 这应该是一个标准的行为,但还没有实现(根据这个问题 )所以我希望解决方法返回405响应代码然而ASP Core不支持它开箱即用。

服务堆栈(REST)SOAP和WSDL无法正常工作

我实现了ServiceStack Hello World ,除了一件重要的事情外,每件事都没问题。 它的SOAP11和SOAP12以及WSDL也无法正常工作。 当访问URL http:// localhost:8082 / SOAP11 / for SOAP11或SOAP12时,它说: { “ResponseStatus”:{ “ErrorCode”:”NotImplementedException”, “Message”:”The method or operation is not implemented.”, “StackTrace”:” at ServiceStack.WebHost.Endpoints.Support.EndpointHandlerBase.ProcessRequest(IHttpRequest httpReq, IHttpResponse httpRes, String operationName) in C:\\src\\ServiceStack\\src\\ServiceStack\\WebHost.EndPoints\\Support\\EndpointHandlerBase.cs:line 52\n at ServiceStack.WebHost.Endpoints.AppHostHttpListenerBase.ProcessRequest(HttpListenerContext context) in C:\\src\\ServiceStack\\src\\ServiceStack\\WebHost.EndPoints\\AppHostHttpListenerBase.cs:line 57\n at ServiceStack.WebHost.Endpoints.Support.HttpListenerBase.ListenerCallback(IAsyncResult asyncResult) in C:\\src\\ServiceStack\\src\\ServiceStack\\WebHost.EndPoints\\Support\\HttpListenerBase.cs:line 197″ } } 我是通过控制台主机实现的。 我的控制台主机类: public class AppHost : AppHostHttpListenerBase […]

ASP.NET Core中的路由消歧(MVC 6)

当ASP.NET Core遇到含糊不清的命名路由时,它变得惰性。 也就是说,应用程序将在没有抛出exception的情况下运行,但是,它将无法在任何控制器上处理任何请求。 主叫客户端收到500个响应。 我将展示我是如何陷入这个烂摊子的,我想知道如何修复它。 我有一个看起来像这样的控制器: [Route(“api/Subscribers/{id}/[controller]”)] [Route(“api/Organizations/{id}/[controller]”)] public class AddressesController : Controller { [HttpGet(“{aid}”, Name = “PostalLink”)] public async Task GetAddress(Guid id, Guid aid) { //…implementation is irrelevant for this question. } [HttpPost] [SwaggerResponseRemoveDefaults] [SwaggerResponse(HttpStatusCode.Created, Type = typeof(PostalRecord))] public async Task CreateAddress(Guid id, [FromBody] PostalAddress address) { address.ID = Guid.NewGuid(); await createAddress.Handle(address); return CreatedAtRoute(“PostalLink”, […]