我有一个ASP.NET 5 MVC 6 Web API项目.大多数API端点都具有[Authorize]属性,并且在IIS和Visual Studio中项目的属性上都启用了Windows身份验证.这一切在beta 7中运行良好.
然而,在测试版8中,这不起作用.通过一个完全干净的项目很容易重现这个:
结果:
尝试确定托管应用程序的DNX进程的进程ID时发生错误.
结果:
该项目启动,但Web API返回500.在"输出"窗口中注意:
Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker:警告:过滤器"Microsoft.AspNet.Mvc.Filters.AuthorizeFilter"上的请求授权失败.
发布到IIS时,该项目也不起作用.
正如beta 8 声明中所述,托管模型已经发生变化,IIS正在将请求传递给Kestrel." 服务器"页面未提供任何Kestrel支持Windows身份验证的指示.是否有一些技巧可以让Windows身份验证在beta 8中运行?
我是 Couchbase 的新手,遇到了一种让我非常困扰的行为。假设我已经在 C# 中定义了这个类:
public class Thing
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我将它存储在 Couchbase 中名为 ThingBucket 的存储桶中。现在,如果我进入 Couchbase 查询工作台并输入:
SELECT Property1, Property2 FROM ThingBucket
Run Code Online (Sandbox Code Playgroud)
我得到的是一个 JSON 对象,它将直接反序列化为一个 Thing 数组:
[
{
"Property1": "Value",
"Property2": "Value"
}
]
Run Code Online (Sandbox Code Playgroud)
这很好,因为我不需要做任何特别的事情就可以将它反序列化为事物。Couchbase C# 驱动程序调用 Json.NET 进行反序列化,并且它可以正常工作。
但是,如果我输入:
SELECT * FROM ThingBucket
Run Code Online (Sandbox Code Playgroud)
我没有得到一系列的东西。我得到了完全不同的东西:
[
{
"ThingBucket": {
"Property1": "Value",
"Property2": "Value"
}
}
]
Run Code Online (Sandbox Code Playgroud)
现在,我的 C# 代码中根本不存在一组形状,而不是 Thing 数组。它是一个对象数组,其中每个对象都有一个作为 Thing 的属性。为了让它反序列化到 Thing,我必须用 [JsonProperty] …