草庐IT

c# - WebAPI token 颁发授权

我目前正在使用session并覆盖AuthorizeAttribute来管理WebAPI端点的授权,该端点由MVCWeb应用程序使用。有人告诉我发行token是管理用户和角色的最佳方式。我想了解的是:为什么它比使用Session更好?有人可以提供一个很好的(简单的)示例,说明如何颁发token、用户何时使用WebAPI端点登录以及如何在颁发token后使用/跟踪token。我一直在研究OWIN和其他一些东西,但我很难找到一个很好的例子来说明它是如何工作的。 最佳答案 token更安全并内置于ASP.NetIdentity框架中。无需

c# - 嵌套 $expands 的 Asp.net WebApi OData V4 问题

我在Asp.netWebApi(OWIN)上有一个ODataV4。一切都很好,除了当我尝试查询4​​级$expand时。我的查询如下:http://domain/entity1($expand=entity2($expand=entity3($expand=entity4)))我没有收到任何错误,但我的响应中没有预测最后一次展开。更多信息:我已将MaxExpandDepth设置为10。我所有的实体都是EntitySets。我正在使用ODataConventionModelBuilder。我打开了一个SQL分析器,可以看到查询(和结果)是正确的。它是在执行查询后发生的一些过滤器。我在网上

c# - 在 webapi 中使用 OData 获取仅在运行时已知的属性

假设我有一个非常简单的类型,我想使用.NETC#webapiController将其作为集合的一部分公开在OData提要上:publicclassImage{//////Getthenameoftheimage.///publicstringName{get;set;}publicintId{get;set;}internalSystem.IO.StreamGetProperty(stringp){thrownewSystem.NotImplementedException();}privateDictionarypropBag=newDictionary();internalstri

c# - 使用 ASP NET MVC 4 和 webapi 的自定义 http 处理程序和路由处理程序

我正在研究ASPNETMVC4和WebApi。移动设备将使用webapi方法。我们需要保护服务,我们正在使用的是以某种特定方式加密数据。现在,我需要在到达Controller之前解密调用。如果解密的信息有效,它应该像往常一样继续到Controller,如果不是,我会将用户路由到一些错误方法。要实现这一点,我认为最好的办法是自定义HttpHandler和自定义RouteHandler。我正在学习教程herepublicclassMvcSecurityRouteHandler:IRouteHandler{publicSystem.Web.IHttpHandlerGetHttpHandler

c# - 为 WebApi Controller 配置请求超时

我在我的WebAPIController中使用异步方法:publicasyncTaskSampleMethod(intsubscriptionNumber,DateTimedepartureDate){//[...]}如何配置请求超时?该操作最多可能需要几分钟,我必须确保请求不会超时。在MVC中有一个名为[AsyncTimeout]的属性。WebApi中是否有等效项?可以全局配置吗? 最佳答案 好问题,我建议从客户端处理这个问题——您始终可以在您的消费者代码中指定超时设置,即使它是ajax:$.ajax({url:"/ajax_js

c# - Glimpse WebAPI 支持

Glimpse(.NET的诊断插件)是否支持来自ASP.NETWebAPI的诊断信息?我安装了它并在网站上运行,它捕获ASP.NETMVC请求并返回有关它们的信息,但我没有看到任何WebAPI请求信息。http://getglimpse.com/ 最佳答案 Glimpse尚无对ASP.NETWebAPI的官方支持,但在该项目的GitHub页面上有一个功能请求;虽然这是4个月大,评论说他们正在努力支持上周发布的MVC4。我猜它可能很快就会上市,但谁知道呢。GlimpseGitHubProjectPage-Issue282-Reques

c# - 将 WebApi 发布到子文件夹

我有一个使用WebApi的开箱即用的VisualStudio2013SPA。我将Twitter身份验证添加到Startup.Auth.cs,当我发布到IIS网站的根目录或当我在VS中使用本地主机进行调试时,所有这些都工作正常。我想不通的是如何将项目发布到这样的子文件夹中:换句话说,http://localhost/api该网站本身有效。始终重定向到http://localhost/#的是来自Twitter的ReturnUrl它包含正确的access_token,但格式如下:http://localhost/#access_token=fzgSLjF4W0QAHlhsNFZI...如果我

c# - 在解决方案中拆分 WebApi 项目和 FrontEnd 项目

我有一个正在构建的移动应用程序的解决方案-到目前为止,它包括两个项目:1)WebAPIforAPI/DAL/SQLetc2)Webforsingle-pagefront-endWeb项目调用WebAPI项目。计划是为Windows8应用程序创建另一个项目,为WP8应用程序创建另一个项目,等等。这在开发过程中运行良好,但在CORS、部署等方面变得相当复杂(Web从与WebAPI不同的端点提供-两个Azure网站)。我的问题是——在构建由REST-ishAPI支持的解决方案时,何时将解决方案拆分为多个项目是明智的还是不明智的? 最佳答案

c# - WebApi POST 可以在没有 [FromBody] 的情况下工作吗?

我有这个ControllerAction:[HttpPost][ActionName("aaa")]publicHttpResponseMessageaaa(Zz)//notice-no[FromBody]{returnRequest.CreateResponse(HttpStatusCode.OK,1);}Z是:publicclassZ{publicstringa{get;set;}}但是当我通过fiddler发帖时:POSThttp://localhost:11485/api/profiles/aaaHTTP/1.1Content-Type:application/x-www-fo

c# - 在 WebApi 中组合路由映射

我在我的WebApiKatana应用程序中使用路由。我有以下两个工作正常的路由映射。我的问题是,我可以使用可选参数将它们组合成一个路由映射吗?我看不到一个明显的方法来做到这一点并保持所需的功能。我对此并不陌生,可能错过了一种可以帮助我实现这一目标的技术。如果路线必须保持这种状态,那么这不是问题。config.Routes.MapHttpRoute(name:"UnRegister",routeTemplate:"api/services/{serviceName}/{location}",defaults:new{controller="MyController",location=R