我有以下Web类:
public class BizAuthController : ApiController
{
[HttpPost]
public __BizAuthModel Register([FromBody] __BizAuthModel authInfo)
{
if (ModelState.IsValid)
{
//... do whatever
}
throw new HttpResponseException(HttpStatusCode.BadRequest);
新的c,夏普,可视化工作室和网络api。(来自java)。
不管怎么说,我都在玩visual里的web。在ValuesControler类中,我注意到它在类的顶部设置了调用属性的东西,因此每当浏览器向api/values发出请求时,都需要首先授权它。
但是属性到底是什么呢?
[Authorize]
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { &
我想使用操作过滤器将Odata uri转换为Linq表达式。我这样做是因为我要使用结果表达式来查询nonSQL业务线系统。在WCF web api中,这是微不足道的,因为翻译后的查询被附加为请求对象的属性,如下所示:
var query = (EnumerableQuery)request.Properties["queryToCompose"];
这似乎已经消失了。有没有什么公共api可以用来实现这一点?
我有下面的Web ActionFilterAttribute
namespace namespace.Filters {
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
public class LogApiRequestActionFilterAttribute : ActionFilterAttribute {
我对C#和web api 2以及创建一些内部使用的web服务还很陌生。我在CI管道中为我们的开发和测试环境设置了冒烟和验收测试,这些测试在我们的数据库中插入虚假数据,并验证各种输出、错误消息等。
问题来了;当我们部署了一个新版本时,在我们的生产环境中进行验收/配置测试。
理想情况下,我想要一个简单的配置测试/报告,告诉我controllers已经被正确实例化,并且在正确的路由上。
在web api 2中有没有一种原生的方法来实现这一点?如果没有,您建议如何在生产环境中测试controllers的可用性,而不会污染数据库(对于POST request),并且有已知的数据可供测试。
我对ASP.NET MVC的理解是,对于授权,我应该使用类似于-
public class IPAuthorize : AuthorizeAttribute {
protected override bool AuthorizeCore(HttpContextBase httpContext) {
//figure out if the ip is authorized
//and return true or false
}
但是在Web API中,没有AuthorizeCore(..)。
OnAuthorization(..)是有的,一般的建议是不要使用OnAuthor
我有一个与我沟通的网络api。
当出现异常时,我得到以下JSON模板:
{
"Message": "An error has occurred.",
"ExceptionMessage": "Index was outside the bounds of the array.",
"ExceptionType": "System.IndexOutOfRangeException",
"StackTrace": " at WebApiTest.TestCon
我的结构如下:
public class SampleEntity{
public string Name { get; set; }
public OtherEntity Relation { get; set; }
}
public class OtherEntity {
public string Name { get; set; }
}
当我使用以下请求体调用更新web.api中的对象时:
"{'Name':'Nome', 'Relation':''}"
反序列化器用空值填充对象,
我已经启动并运行了一个SQL Azure数据库。我正在为一个web api应用程序使用的连接字符串。
当我使用SQL Azure连接字符串通过Visual Studio运行应用程序时,我没有收到任何授权拒绝响应。
现在,我将我的web api应用程序部署到Azure,当我尝试访问任何API控制器时,它显示为Authorization has been denied for this request.
我还检查了我的应用服务的身份验证/授权设置,它是....已在app Service应用程序上启用匿名访问。系统不会提示用户登录。
为什么我会收到拒绝授权的响应。我是不是遗漏了什么设置?
我想上传文件到服务器使用CLR与安全令牌在头部和嵌入ASP.NET对象在HTTPRequestMessage中。
我可以找到使用带有多部分内容类型的Web API异步的POST文件的解决方案,但没有解决方案来使用自定义HTTP请求消息和标题令牌进行上传...
我正在使用下面的代码
public HttpResponseMessage UploadImportFile()
{
List<string> FileIdentifiers = new List<string>();
// Check if the request
我的MVC3应用程序调用WCF服务来下载/上传文件。WCF服务调用旧的asmx服务来获取请求的文件的base64字符串(下载),或者接收文件的base64字符串(上载)。我可以将任何大小的文件下载到我的机器上。
当我尝试上传一个文件时,我得到了可怕的最大数组长度错误:
The maximum array length quota (16384) has been exceeded while reading XML data.
This quota may be increased by changing the MaxArrayLength property on the
我有一个从ApiController继承的基本api控制器。在它中,我将覆盖ExecuteAsync,并希望使用存储在Principal.Claims var中的一些数据。但是在调用base.ExecuteAsync()之前它是空的,在调用它之后太晚了。我没看到还有什么能帮上忙的?
public class ApiControllerBase : ApiController
{
public MyUser CurrentUser { get; set; }
public override Task<HttpResponseMessage> ExecuteAsync
我遇到了一个奇怪的问题。我已经设置和MVC 4应用程序使用NHibernate,然后在ASP.NET MVC4 and the Web API published by apress中的说明。
我使用名为[LoggingNhibernateSessionAttribute]的控制器属性管理操作会话。它工作得很好,我可以使用NHibernate执行CRUD操作。
但是,当我向重定向到登录页面的authorize属性添加HomeController时,会出现问题。此时出现异常,指示
“没有与当前上下文绑定的会话”
我经常看我的代码。但我不明白为什么会话不受当前上下文的约束。
public
我正在使用Asp.Net Web的发布版本创建一个Api。如果没有找到结果,我将试图传回正确的响应代码(404)。
First Get版本(引发多个枚举错误):
public IEnumerable<MyObjectType> Get(int id, string format)
{
var db = new DbEntities();
var result = db.pr_ApiSelectMyObjectType(store, id, format).AsEnumerable();
if (result.Any())
{
ret
我有一个简单的API控制器方法
public async Task<Models.Timesheet> GetByDate(DateTime date, string user = null)
{
throw new InvalidOperationException();
}
现在的问题是,我在自定义操作筛选器中或通过设置IncludeErrorDetailPolicy.Always获得的异常堆栈跟踪如下所示
System.InvalidOperationException: Operation is not valid due to the current state
我正在开发一个spring引导应用程序,我使用spring安全性来保护我的应用程序。我已经创建了一个自定义过滤器,我想在UsernamePasswordAuthenticationFilter之后添加它。我使用HttpSecurity.addFilterAfter方法来完成这个任务。
但是,我的过滤器从未被调用过。请你帮我解决这个问题。代码:
MultiSessionCustomLMSFilter.java
public class MultiSessionCustomLMSFilter extends GenericFilterBean {
private final static Log