Questions tagged «asp.net-web-api»

ASP.NET Web API是用于为客户端(如浏览器和移动设备)构建HTTP服务的框架。它基于Microsoft .NET Framework,是构建RESTful服务的理想选择。

13
找不到Request.GetOwinContext
我一直在寻找一个小时,试图弄清楚为什么它不起作用。 我有一个带有WebAPI的ASP.Net MVC 5应用程序。我正在尝试获取Request.GetOwinContext()。Authentication,但是我似乎找不到如何包含GetOwinContext。这是我的代码: using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web; using System.Web.Mvc; using System.Web.Security; using TaskPro.Models; namespace TaskPro.Controllers.api { public class AccountController : ApiController { [HttpPost] [AllowAnonymous] public ReturnStatus Login(LoginViewModel model) { if (ModelState.IsValid) { var ctx = Request.GetOwinContext(); // <-- Can't find this …
101 c#  asp.net-web-api  owin 

10
如何在WebApi中添加和获取Header值
我需要在WebApi中创建POST方法,以便可以将数据从应用程序发送到WebApi方法。我无法获取标头值。 在这里,我在应用程序中添加了标头值: using (var client = new WebClient()) { // Set the header so it knows we are sending JSON. client.Headers[HttpRequestHeader.ContentType] = "application/json"; client.Headers.Add("Custom", "sample"); // Make the request var response = client.UploadString(url, jsonObj); } 遵循WebApi post方法: public string Postsam([FromBody]object jsonData) { HttpRequestMessage re = new HttpRequestMessage(); var headers = …

4
如何添加全局ASP.Net Web Api筛选器?
我已经创建了一个Web Api过滤器(使用System.Web.Http.Filters.ActionFilterAttribute),但是无法使其在ASP.Net MVC 4中运行。我试图将其添加到该RegisterGlobalFilters()方法中,但这没有用。 因此,如果一个人使用的是ASP.Net MVC中托管的Web Api,一个寄存器如何过滤?


5
如何使用Web API返回文件?
我正在使用ASP.NET Web API。我想从API(API生成)下载带有C#的PDF。 我可以让API返回byte[]吗?对于C#应用程序,我可以这样做: byte[] pdf = client.DownloadData("urlToAPI");? 和 File.WriteAllBytes()?

8
在ApiController动作中获取当前用户,而不将userID作为参数传递
我们如何在安全的ApiController动作中获取当前用户,而不将userName或userId作为参数传递? 我们认为这是可用的,因为我们处于安全的行动之内。采取安全措施意味着用户已经通过身份验证,并且该请求具有其承载令牌。假定WebApi已授权用户,则可能有一种内置的方式来访问userId,而不必将其作为操作参数传递。

6
'System.Net.Http.HttpContent'不包含'ReadAsAsync'的定义,也没有扩展方法
我制作了一个控制台应用程序以使用我刚制作的Web API。控制台应用程序代码无法编译。它给了我编译错误: 'System.Net.Http.HttpContent' does not contain a definition for 'ReadAsAsync' and no extension method 'ReadAsAsync' accepting a first argument of type 'System.Net.Http.HttpContent' could be found (are you missing a using directive or an assembly reference?) 这是发生此错误的测试方法。 static IEnumerable<Foo> GetAllFoos() { using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add("appkey", "myapp_key"); var …

30
在IIS 7.5中托管的Web Api中找不到HTTP 404页面
我有一个Web Api应用程序。当我使用VS 2010调试开发服务器对其进行测试时,它工作得非常好。但是我现在将其部署到IIS 7.5,尝试访问该应用程序时出现HTTP 404错误。 这是我的web.config <?xml version="1.0" encoding="utf-8"?> <configuration> <connectionStrings> <add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=aspnet-FlowGearProxy-20123141219;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings> <appSettings> <add key="webpages:Version" value="2.0.0.0" /> <add key="webpages:Enabled" value="true" /> <add key="PreserveLoginUrl" value="true" /> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> <system.web> <compilation debug="true" targetFramework="4.0" /> <authentication mode="Forms"> <forms …

5
Web API路由-api / {controller} / {action} / {id}“功能异常” api / {controller} / {id}
我在Global.asax中具有默认路由: RouteTable.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = System.Web.Http.RouteParameter.Optional } ); 我希望能够定位特定的功能,所以我创建了另一条路线: RouteTable.Routes.MapHttpRoute( name: "WithActionApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = System.Web.Http.RouteParameter.Optional } ); 因此,在我的控制器中,我有: public string Get(int id) { return "object of id id"; } [HttpGet] public IEnumerable<string> ByCategoryId(int id) { return new string[] { …



4
WCF与ASP .Net Web API
使用每种技术的利弊是什么? WCF Web Api现在已合并到Asp.net Asp.net Web api现在支持自托管。 我仍然想像一下,如果我想为同一操作公开多个协议架构,我还是会倾向于WCF,或者Mvc端点也可以这样做吗? 新的Asp.Net Web API还会公开Wsdl吗?如果没有,客户将如何确定他们可以进行哪些操作? 可以说Mvc的最佳功能是modelbinder。WCF是否等效? 那么有人可以告诉我Asp.net Web API带来什么好处吗?WCF似乎绝大多数是imo。Mvc Web Api在WCF模型上唯一具有的优势可能是易于开发,但这意味着如果最终成为道路上的严重设计限制,则必须蹲下。

14
如何在ASP.NET Identity中更新声明?
我为我的MVC5项目使用OWIN身份验证。这是我的SignInAsync private async Task SignInAsync(ApplicationUser user, bool isPersistent) { var AccountNo = "101"; AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); identity.AddClaim(new Claim(ClaimTypes.UserData, AccountNo)); AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent, RedirectUri="Account/Index"}, identity); } 如您所见,我已添加AccountNo到“索赔”列表中。 现在,如何在应用程序中的某个时刻更新此声明?到目前为止,我有这个: public string AccountNo { get { var CP = ClaimsPrincipal.Current.Identities.First(); var Account= CP.Claims.FirstOrDefault(p => p.Type == …

17
无法在MVC4 Web API中加载文件或程序集'System.Net.Http,Version = 2.0.0.0
我有一个奇怪的问题。 我使用MVC 4和新的Web API开发了一个应用程序,并且在本地运行良好。我在服务器上安装了MVC4并部署了该应用程序。现在我得到以下错误: 无法加载文件或程序集'System.Net.Http,版本= 2.0.0.0,区域性=中性,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040) 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其起源的更多信息。 有趣的是,我在包文件夹中或ASP.NET MVC 4 \ Assemblies文件夹中本地拥有的System.Net.Http版本是1.0.0.0。实际上,我从项目中删除了对System.Net.Http的引用,但仍然收到相同的消息。我对它从何处获得2.0.0.0引用以及为什么它将在本地但不在服务器上工作感到困惑。 查看nuget依赖项: ASP.NET WEb API核心库(Beta)取决于System.Net.Http.Formatting。 而System.Net.Http.Formatting取决于System.Net.Http。 我想那是从哪里来的。但是我确实安装了此软件包的2.0.20126.16343版本,只是其中的dll版本为1.0.0.0 我想念什么吗? 更新: 这是另一个ASP.NET应用程序的子应用程序,但是另一个仍然基于WebForms。所以,事情变得混乱了。但是,如果我在web.config的“汇编”部分下进行了清洁,甚至找不到该应用程序本身了。

10
ASP.NET Web Api:请求的资源不支持http方法“ GET”
我在ApiController上执行以下操作: public string Something() { return "value"; } 而且我的路线配置如下: routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); 在测试版中,此功能运行良好,但我刚刚更新到了最新的候选版本,现在在这样的调用中看到错误: 请求的资源不支持http方法'GET'。 为什么这不再起作用? (我想我可以摆脱{action}并只制造大量的控制器,但这感觉很混乱。)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.