问题标签 [webapi2]

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 投票
0 回答
384 浏览

asp.net - web api 2 owin bearer token JwtFormat,如何为多个登录返回相同的令牌(OAuthAuthorizationServerProvider 和外部)

我有一个身份验证服务器,它为多个平台(移动、网络等)返回一个令牌,然后使用这个令牌他们可以向我的 API 发出请求。像这样的东西:http: //bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/

现在我需要添加外部登录(facebook、google、twitter)。

我在本指南中实现了它: http ://www.asp.net/web-api/overview/security/external-authentication-services

我不明白的是如何返回与常规身份验证中返回的相同的令牌(以便以后能够请求 API)。

我的 api 只知道自定义 jwt 令牌。

我需要从 GetExternalLogin 函数手动执行吗?

如果是的话,我做了这样的事情:

var ticket = new AuthenticationTicket(身份,道具);var accessToken = Startup.OAuthOptions.AccessTokenFormat.Protect(ticket);

现在我需要知道 1)需要添加到属性 IssuedUtc ,ExpiresUtc ,如何?在常规认证中是自动填写的 2)如何将其返回给客户端?

我最终在帐户控制器中看到了我需要做的事情:Authentication.SignIn(identity);

在提供者中: context.Validated(ticket);

也许我可以在帐户控制器中做同样的事情?

谢谢。

0 投票
0 回答
116 浏览

c# - Webapi 控制器和 Objectdatasource

我想一步一步地从 web 表单迁移到基于 z angularjs 或 devextreme 的客户端应用程序。目前我正在使用 objectdatasource 并通过一种标记为 dataobject 的控制器加载数据。由于我想一步一步走,所以我想知道是否可以先将我当前的控制器转换为 webapi 控制器并将 objectdatasources 绑定到 webapi 方法。所以zgqt在下一步我已经有了数据访问接口。

0 投票
1 回答
391 浏览

jquery - 使用 webapi2 和 jquery 的 Bluesnap api 实现

我总是收到需要身份验证的窗口。当我调用蓝色快照沙箱 URL 时。我已经用谷歌搜索并阅读了一些文章,其中说由于 CORS,出现了需要身份验证的消息框。我尝试在标头本身中添加基本身份验证,但没有运气。

JS代码

0 投票
1 回答
5457 浏览

c# - 上传图像文件时将 mime 多部分正文部分写入输出流时出错

我正在关注此链接以使用 webapi2 将文件从 mvc 视图上传到服务器

http://www.strathweb.com/2012/08/a-guide-to-asynchronous-file-uploads-in-asp-net-web-api-rtm/

但我每次都收到这个错误

“将 mime 多部分正文部分写入输出流时出错”

0 投票
2 回答
1124 浏览

c# - Web API 2 - 现在允许 PUT 的方法(405)

我被 Web API 2 控制器卡住了,我从中调用PUT方法,它给了我一个错误,即不允许使用方法。我添加Web.config了阻止 WebDAV 阻止方法的代码行。我尝试了一切,但它不起作用。这可能是我PUT在控制器中的方法的问题。

这是我的控制器代码:

这是我调用 put 的代码:

在此代码之前,我将客户端定义为 http 并添加了所需的属性,并调用了其他控制器方法(GET、POST、DELETE),它们都可以工作。这是来自 Windows 窗体应用程序,我也从 Postman 调用,但仍然是同样的错误。

0 投票
1 回答
299 浏览

asp.net - 使用 Web API 2 不记名令牌验证令牌中的声明/角色

我想确认不记名令牌中的声明在每次 API 调用时都是最新的,以便我确保给定用户仍然可以访问给定方法。

例如,对于一个用 I 装饰的方法,[Authorize(Roles = "admin")]我想确保在执行调用时用户是管理员,而不是在发出令牌时用户是管理员。

经过一番环顾后,我计划在public class VerifyTokenAttribute : System.Web.Http.AuthorizeAttribute全局范围内编写应用程序并在内部OnAuthorization检查操作是否被装饰,Authorize如果是,则从数据库中获取用户信息并确认角色匹配。

有没有更好的办法?

0 投票
3 回答
508 浏览

jquery - WEB API2 / HTTP DELETE 未触发 - 405 错误

您好我正在尝试删除记录(HttpDelete)。控制器中的方法未触发并出现 405 Method Not Allowed 错误。

下面的jquery

下面的控制器

下面的 webapiconfig

网页配置如下

当我使用提琴手拨打电话时,它工作正常。如果我错过了代码中的任何设置,请告诉我。

感谢开发

0 投票
3 回答
118 浏览

c# - 过滤器的WebApi2默认异常对象

给定这样的异常过滤器。

返回给客户端 javascript的异常原因是一个纯字符串

当在默认 WebApi2控制器中抛出异常时,返回的默认原因对象包含配置、数据、标头等。我找不到如何从我的异常过滤器返回所有这些额外信息的示例。我尝试检查源无济于事...

在此处输入图像描述

我需要更改什么才能返回相同的默认响应,而不仅仅是一个纯字符串。

0 投票
1 回答
468 浏览

asp.net - Asp.net WebApi2 - 避免抓取,避免通过浏览器直接访问,只允许来自域的 ajax 调用

我是 webapi2 的新手,我实现了一个简单的 WebApi2 项目,该项目从第三方 Web 服务(使用凭据调用)中解锁了一些数据

这很好用,但现在我正在寻找避免从我们的 webapi 中抓取内容的方法。它不是敏感数据,但它可能对竞争对手有利。

我们不能让我们的用户登录,但我正在寻找使某人更难从网络服务中抓取内容的方法。由于数据可以从我们的网站免费获得,我知道我们不能让它 100% 安全,但我必须做一些事情来让它变得更难(这似乎是人们以前反驳过的一个问题,我似乎无法找到一些明确的信息)

我研究了 CORS,但这似乎更适合反过来,允许来自其他域的请求。

也许在后端使用一些密钥,用一些日期时间和标头信息对其进行哈希处理,然后让 javascript 将其添加到 ajax 调用中,如果令牌有效,则检查 webapi 方法?

编辑

因为似乎没有一种简单(且干净)的方法来阻止令牌身份验证滥用,所以我决定使用 Ip 限制。不理想,但它有帮助:

我使用了这个库,它运行良好: https ://github.com/stefanprodan/WebApiThrottle

0 投票
1 回答
257 浏览

asp.net-web-api - 无法使用 Web API 生成 Elmah 日志记录的 Elmah.axd 文件

我只创建了 Web API。我想使用 Elmah Logging。我已经安装了它的 Nuget 包。但是当我尝试从浏览器访问 Elmah.axd 文件时,它给了我一个错误:404 Not Found。并且不会生成该文件。我已经关注了这个链接。

我需要做任何额外的事情来生成/访问这个文件吗?