小编Mic*_*elZ的帖子

在ASP.NET Core 2.0 Web Api中返回"raw"json

AFAIK在ASP.NET Core Web Api中返回数据的标准方法是使用IActionResult并提供例如OkObject结果.这适用于对象,但如果我以某种方式获得了JSON字符串,我只想将该JSON返回给调用者呢?

例如

public IActionResult GetSomeJSON()
{
    return Ok("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }");
}
Run Code Online (Sandbox Code Playgroud)

ASP.NET Core在这里做的是,它接受JSON字符串,并再次将其包装到JSON中(例如它转义为JSON)

返回纯文本[Produces("text/plain")]通过提供"RAW"内容确实有效,但它也将响应的内容类型设置为PLAIN而不是JSON.我们[Produces("application/json")]在控制器上使用.

如何在没有转义的情况下将JSON作为普通的JSON内容类型返回?

注意:获取JSON字符串无关紧要,它可能来自第三方服务,或者存在一些特殊的序列化需求,因此我们希望进行自定义序列化而不是使用默认的JSON.NET序列化程序.

c# asp.net-mvc json asp.net-core-mvc

31
推荐指数
3
解决办法
2万
查看次数

使用PowerShell将IIS SSL证书分配给与主机标头绑定

我正在尝试将证书分配给HTTPS绑定.不幸的是,我从PowerShell收到此错误:

new-item : Cannot create a file when that file already exists
At line:3 char:56
+         get-item -Path "cert:\localmachine\my\$cert" | new-item -path IIS:\SslBi ...
+                                                        ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [New-Item], Win32Exception
    + FullyQualifiedErrorId : System.ComponentModel.Win32Exception,Microsoft.PowerShell.Commands.NewItemCommand
Run Code Online (Sandbox Code Playgroud)

我执行的PowerShell是:

 New-WebBinding -name $Name -Protocol https -HostHeader "$Name.domain.com" -Port 443 -SslFlags 1
 $cert = Get-ChildItem -Path Cert:\LocalMachine\My | where-Object {$_.subject -like "*cloud.domain.com*"} | Select-Object -ExpandProperty Thumbprint
 get-item -Path "cert:\localmachine\my\$cert" | new-item -path IIS:\SslBindings\0.0.0.0!443!$Name.domain.com
Run Code Online (Sandbox Code Playgroud)

它似乎能够找到证书,但无法将其分配给创建的绑定.使用正确的IP/Port/HostHeader创建绑定,检查SNI,但SSL证书是"未选中"

从IIS管理器一切正常

我尝试过来自SO和其他网站的各种说明,例如:
http://technet.microsoft.com/en-us/magazine/jj871065.aspx
Powershell IIS7 Snap in将SSL证书分配给https绑定 …

powershell ssl certificate iis-8

8
推荐指数
3
解决办法
2万
查看次数

使用 OAuth 的 Office 365/EWS 身份验证

我正在尝试使用 OAuth 和 EWS 托管 API 登录 Office 365 Exchange Online。

我能够使用连接到 Office 365 Web API (REST),因此我确实拥有来自 Active Directory 身份验证库 (ADAL) 的有效令牌。

现在,我正在尝试使用 EWS 和 TokenCredentials 进行连接。

代码很简单,我认为:

public static ExchangeService ConnectToServiceWithImpersonation(string token)
{
    var service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);

    if (true)
    {
        service.TraceListener = new TraceListener();
        service.TraceFlags = TraceFlags.All;
        service.TraceEnabled = true;
    }

    var credentials = new TokenCredentials(token);

    service.Credentials = credentials;

    service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");
    return service;
}
Run Code Online (Sandbox Code Playgroud)

令牌由 ADAL 生成,而 ADAL 又来自使用“Office 365 API 工具 - 预览”的示例代码

// Obtain …
Run Code Online (Sandbox Code Playgroud)

c# ms-office exchangewebservices oauth-2.0

3
推荐指数
1
解决办法
1万
查看次数

SQL - WHERE(X,Y)IN(A,B)

我目前有一些堵塞.

我的理论查询看起来像这样:

SELECT * FROM Table WHERE X in (a, b, c) AND Y IN (d, e, f)
Run Code Online (Sandbox Code Playgroud)

所以基本上,我希望所有行都有多列匹配,这意味着:

X,     Y  
1,     2  
3,     4  
5,     6  
7,     8,  
9,    10
Run Code Online (Sandbox Code Playgroud)

如果我想将所有行放在哪里(X=1, Y=2)或者(X=5, Y=6),那么X和Y是相关的,我该怎么做?

(MS SQL2005 +)

sql sql-server

1
推荐指数
1
解决办法
8656
查看次数