Tag: asp.net web api

Owin Bearer Token不适用于WebApi

我已经浏览了大量文档,我的谷歌搜索显示我访问了第一页上的所有链接 问题令牌生成工作正常。 我使用自定义提供程序对其进行了配置: public void ConfigureOAuth(IAppBuilder app) { var usermanager = NinjectContainer.Resolve(); app.UseOAuthAuthorizationServer(new OAuthAuthorizationServerOptions { AllowInsecureHttp = true, TokenEndpointPath = new PathString(“/token”), AccessTokenExpireTimeSpan = TimeSpan.FromDays(1), Provider = new AppOAuthProvider(usermanager) }); app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions()); } 但是,当我调用受保护的URL并传递持有者令牌时,我总是得到: 如何诊断或解决问题。 如果可能,我如何自己进行令牌validation 更新这是我的AppOAuthProvider。 当我尝试使用令牌时,会调用这两种方法,但在我尝试访问受保护资源时则不会 public class AppOAuthProvider : OAuthAuthorizationServerProvider { private UserManager _user; public AppOAuthProvider(UserManager user) { _user = user; } […]

Web API2 NinjectWebCommon.cs不会出现

我Empty Web API in Visual Studio 2013 Framework 4.5中执行Empty Web API in Visual Studio 2013 。 显然NinjectWebCommon.cs没有出现。 我通过Nuget安装, Ninject, Ninject.Web.Common, Ninject.MVC5, Ninject.Web.Common.WebHost, Ninject.Web.WebApi, Ninject.web.WebApi.WebHost 但是NinjectWebCommon.cs仍然没有出现。 我还需要安装什么? 我可以手动添加该文件吗? 谢谢

MVC 4 Web Api控制器没有默认构造函数?

这是跟踪: An error has occurred. Type ‘ProjectName.Web.Api.Controllers.ContinentsController’ does not have a default constructor System.ArgumentException at System.Linq.Expressions.Expression.New(Type type) at System.Web.Http.Internal.TypeActivator.Create[TBase](Type instanceType) at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.GetInstanceOrActivator(HttpRequestMessage request, Type controllerType, Func`1& activator) at System.Web.Http.Dispatcher.DefaultHttpControllerActivator.Create(HttpRequestMessage request, HttpControllerDescriptor controllerDescriptor, Type controllerType) 我觉得这很奇怪,因为public class UsersController : ApiController { … }工作得很好。 我比较了2个控制器,所有设置和结构都相似。 我正在使用Ninject ,我的系统设置类似于Jamie Kurtz Asp.Net Mvc 4和Web Api:从头到尾构建REST服务 。 从堆栈跟踪,是否有人能够发现问题以及如何解决它? 谢谢! 按照要求。 ContinentsController […]

从c#中的WebApi OData(EF)响应中排除属性

我正在使用C#的WebApi项目(EF代码优先),我正在使用OData。 我有一个“用户”模型,包含Id,Name,LastName,Email和Password。 在控制器例如我有这个代码: // GET: odata/Users [EnableQuery] public IQueryable GetUsers() { return db.Users; } 如果我调用/ odata / Users,我将获得所有数据:Id,Name,LastName,Email和Password。 如何从结果中排除密码,但在控制器中保持可用以进行Linq查询?

Web API路由到操作名称

我需要一个控制器来返回JSON以供JavaScript使用,所以我inheritance了ApiController类,但它的行为并不像我预期的那样。 Apress书籍Pro ASP.NET MVC 4以及我发现的大多数在线示例给出了以下示例: public class ServicesController : ApiController { public string[] MethodFruit() { return new string[] { “Apple”, “Orange”, “Banana” }; } 通过URL访问: http://mysite/services/methodfruit 但这永远不会奏效 – 找不到资源。 我可以使用的唯一方法是让控制器为每个HTTP动词包含不同的方法,然后: http://mysite/api/services 哪个调用GET方法。 我检查了Apress网站,但他们似乎没有任何论坛,目前的源代码是在VS 2012,我没有使用。 我检查了源文件,他们似乎认为前一种方法应该有效。 是不是再支持前一种方法?

使用NEST索引动态对象

我正在构建一个API应用程序,它基本上允许用户构建一个文档,该文档可以根据需要进行结构化,并存储在Elasticsearch中。 从本质上讲,我为用户提供了一个简单的界面来访问我们的Elasticsearch实例。 我试图让实现尽可能简单。 这是我到目前为止所处理的问题。 预期身体的对象: public class DocumentModel { public string Index { get; set; } public string Type { get; set; } public string Id { get; set; } [ElasticProperty(Type = FieldType.Nested)] public dynamic Document { get; set; } } 简单实施: [HttpPost] [Route(“”)] public IHttpActionResult Post(DocumentModel document) { Uri nodeLocation = new Uri(“http://localhost:9200”); IConnectionPool […]

使用WebAPI进行JSON.NET抽象/派生类反序列化2

我正在实现一个使用JSON.NET进行序列化的Web API 2服务。 当我尝试PUT(deseralize)更新的json数据时,抽象类不存在意味着它不知道如何处理它所以它什么也没做。 我也尝试使类不是抽象的,只是从它inheritance,然后每个PUT去除了基类,而不是缺少了类的属性。 例: public class People { // other attributes removed for demonstration simplicity public List People { get;set; } } public abstract class Person { public string Id {get;set;} public string Name {get;set;} } public class Employee : Person { public string Badge {get;set;} } public class Customer : Person { […]

WebApi v2 ExceptionHandler未调用

为什么永远不会调用自定义ExceptionHandler ,而是返回标准响应(不是我想要的那个)? 像这样注册 config.Services.Add(typeof(IExceptionLogger), new ElmahExceptionLogger()); config.Services.Replace(typeof(IExceptionHandler), new GlobalExceptionHandler()); 并实施这样的 public class GlobalExceptionHandler : ExceptionHandler { public override void Handle(ExceptionHandlerContext context) { context.Result = new ExceptionResponse { statusCode = context.Exception is SecurityException ? HttpStatusCode.Unauthorized : HttpStatusCode.InternalServerError, message = “An internal exception occurred. We’ll take care of it.”, request = context.Request }; } } public class […]

ASP.NET MVC和Angularjs一起+ ASP.NET Web API

我想知道使用这两个世界的优点和缺点: ASP.NET MVC和Angularjs在一起(没有剃刀,Angularjs将完成这项工作)。 AngularJS(前端)+ ASP.NET Web API(后端)。 我们专注于SPA / Mini-SPA,适用于具有大量服务器端业务规则和计算的中型/大型企业项目。 我也专注于安全性。 优点和缺点意见将帮助我在脑海中找到这个问题的依据: 将ASP.NET Web API(后端),ASP.NET MVC和Angularjs一起使用是一个明智的决定吗?

从模型validation中排除类型(示例DbGeography)以避免InsufficientExecutionStackException

更新:对于tl; dr版本跳到底部 我有一个非常简单的JsonConverter子类,我正在使用Web API: public class DbGeographyJsonConverter : JsonConverter { public override bool CanConvert(Type type) { return typeof(DbGeography).IsAssignableFrom(type); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var value = (string)reader.Value; if (value.StartsWith(“POINT”, StringComparison.OrdinalIgnoreCase)) { return DbGeography.PointFromText(value, DbGeography.DefaultCoordinateSystemId); } else if (value.StartsWith(“POLYGON”, StringComparison.OrdinalIgnoreCase)) { return DbGeography.FromText(value, DbGeography.DefaultCoordinateSystemId); } else //We don’t […]