问题标签 [asp.net-web-api2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2665 浏览

model-binding - WebApi2:自定义参数绑定绑定部分参数

我有一个 webApi2 项目和另一个项目,其中我有我的模型类和一个 BaseModel,它是所有模型的基础,如下所示,

所有其他模型都来自我的 BaseModel。

在 webapi 我有我的 CustomerController 如下,

到达 CustomerController 的每个请求在请求标头中都有一个“UserId”标头,我需要一个 ModelBinder 或 ParameterBinder 或一些仅绑定来自请求标头的 UserId 而不会触及其他模型参数的功能。我的意思是除了 UserId 之外的模型参数默认绑定..

我不想使用 AOP 或拦截器或方面。是否可以仅将 UserId 与模型绑定器、参数绑定器等 asp.net 功能绑定。

0 投票
2 回答
754 浏览

authentication - 如何获取调用 API 的用户的用户名?

技术:ASP.Net Web API 2 身份验证。

IDE:我在 Visual Studio 2013 中使用 SPA 模板。

故事:我添加了一个带有一个 Get 方法的控制器(参见代码)并执行了一个测试以打印“System.Threading.Thread.CurrentPrincipal.Identity.Name”。最终的游戏是找到调用 API 的客户端的身份。

问题:为什么身份显示为空?这是否与调用在不同线程上服务的事实有关?令牌(客户端在登录时收到)是否是请求的一部分并用于身份验证?

为了清楚起见,我尽量保持简短,所以如果您需要更多信息,请告诉我。


好的,我找到了解决方法(不是解决方案)。基本上,删除这一行“config.SuppressDefaultHostAuthentication();”。 http://forums.asp.net/p/1944393/5594350.aspx?Re+Web+API+2+how+do+I+find+the+identity+of+an+authenticated+user+


0 投票
1 回答
230 浏览

asp.net-web-api - 看不懂 MVC5 + WebApi2 授权

我知道 OAuth 的概念是什么:用户使用授权类型、用户名和密码向服务器发送请求,在对服务器进行一些检查后,用户会收到一个访问令牌。我无法理解的是为什么我应该这样做:

什么是CreateIdentityAsync回归?什么是AuthenticationTicket? 做什么context.Validated?另外,如果我有,我oAuthIdentity为什么还要使用cookiesIdentity?最后,访问令牌在哪里生成?

我搜索但找不到解释这一点的网站。

0 投票
1 回答
6133 浏览

entity-framework - ASP.net 身份、IoC 和共享 DbContext

有没有人成功地将 IoC 与 OWIN ASP.NET 标识附加到与 WebApi(或 MVC)应用程序共享相同的 DbContext 上?

如果 ASP.Net 身份加载用户,我希望它加载到与应用程序其余部分相同的 dbcontext 中。

(使用 AutoFac 作为 IoC - 但不介意其他容器的示例)

编辑:2014 年 1 月 6 日:更具体一点,当 ASP.Net 身份尝试使用 DbContext 时,它需要与应用程序的其余部分相同的 DbContext实例。否则它将创建相同 DbContext 的两个实例。我已经在使用.PerHttpApiRequest()扩展程序了。

我发现的问题是,在设置 OWIN 类时,我找不到以下方法: 1)将容器附加到 OWIN 管道;2) 告诉 OWIN 使用该容器解析它需要的类,以便它可以共享相同的范围(即 OAUthServerOptions 或任何其他可能包含其他依赖项的类)

话虽如此,您如何设置解决上述两点的 ASP.Net 身份?

0 投票
0 回答
222 浏览

c# - 使用 MemoryCache 缓存在 ASP.NET WEBI 委托处理程序中不起作用

我需要在每个请求上读取一个几乎静态的 JSON 文件。我正在使用面向 .NET 4.5 的 ASP.NET Web API 2。我曾打算使用 System.Runtime.Caching.Memory 缓存。我在委托消息处理程序中使用这个缓存。令我惊讶的是,缓存根本不起作用。每次请求到来时,缓存键似乎都不存在,它只是不断地加载文件。为了测试相同,我使用了 IIS Express 8.0 并使用了断点 n VS 2012。

我的代码如下

在 GetFromCache 函数中,当我在 if 段中放置断点时,我看到内容总是从文件中加载,而不是在任何情况下从缓存中加载。如果我遗漏了什么,你能告诉我吗?

0 投票
1 回答
1912 浏览

c# - 从 HttpRouteCollection 中删除路由

我正在使用 WebAPI 2.0 中包含的属性路由,但无法弄清楚如何根据某些条件删除路由。我使用 映射所有路线MapHttpAttributeRoutes,然后我想使用下一行代码删除特定路线。

但这会抛出一个NotSupportedException. 如何删除一条路线?如果没有,还有其他方法可以实现吗?

0 投票
0 回答
117 浏览

c# - Autofac中的两个组件注册有什么区别?

我一直在通过网络尝试将Autofac集成到我的 Web Api 应用程序中。我不断遇到上述组件注册。

这两种注册类型是否相同,如果不是,一种比另一种更好,以什么方式?

我读过的帖子

自动法

与 ASP.NET Web API 集成

使用 Autofac 的 ASP.NET Web API 中的依赖注入

Autofac 和 ASP.NET Web API System.Web.Http.Services.IDependencyResolver 集成

0 投票
3 回答
19812 浏览

asp.net-mvc-5 - Web API 2 OWIN Bearer Token cookie的用途?

我正在尝试了解 MVC 5 中单页应用程序模板中新的 OWIN Bearer Token 身份验证过程。如果我错了,请纠正我,对于 OAuth 密码客户端身份验证流程,Bearer Token 身份验证通过检查 http 授权请求标头来工作对于承载访问令牌代码来查看请求是否经过身份验证,它不依赖 cookie 来检查特定请求是否经过身份验证。

根据这篇文章:

使用 Web API 示例进行 OWIN 不记名令牌身份验证

GrantReourceOwnerCredentials 函数不仅使用以下行组成票证: context.Validated(ticket); 但它也组成一个 cookie 身份,并使用以下行将其设置为 cookie: context.Request.Context.Authentication.SignIn(cookiesIdentity);

所以我的问题是,这个函数中 cookie 的确切目的是什么?AuthenticationTicket 不应该足以用于身份验证目的吗?

0 投票
1 回答
393 浏览

asp.net-web-api - 使用 Web API 进行集成测试 - 非 InMemory-tests 或 InMemory 测试 -

我想对我的 Web API 控制器进行集成测试。当集成测试开始时,应该处理 Web API 的整个请求/响应管道,因此它是一个真正的集成测试。

我读过一些关于非 InMemory 测试或 InMemory 测试的博客。我需要知道有什么区别,哪些方法符合我的上述标准?

对于真正处理 Web API 上的自托管或 IIS 托管集成测试的人的一些解释,我真的很高兴(如果测试有差异......)

0 投票
1 回答
635 浏览

asp.net-web-api - 尽管我只定义了一个 JsonFormatter,但 wep api 如何返回 html 的内容类型?

在我的 Application_Start 中:

我的默认网址:

内容是类型"text/html",但我没有在其中设置它,response.Headers.ContentType但仍然正确返回了 html 文件,尽管没有类似 html 内容协商器之类的东西,实际上我假设该操作会将 html 文件作为 json 返回,否则会发生错误但一切正常。

这是为什么?