小编tug*_*erk的帖子

出于特殊原因不允许执行DELETE操作时要返回的HTTP状态代码

假设我有一个/api/shipments/100支持HTTP DELETE方法的资源(例如:).正如您可以从URI本身理解的那样,如果针对此URI发出DELETE请求,则将删除此资源.

在我当前的场景中,只有满足某个条件,才能成功执行DELETE请求,如下所示:

  • 如果装运状态未设置为InTransit或已交付.

如果存在针对该URI的DELETE请求并且不满足上述条件,那么在这种情况下哪个HTTP状态代码更适合返回?我已经考虑过以下的但是无法确定哪一个更具语义:

  • 405方法不允许
  • 403禁止
  • 409冲突

http http-status-codes http-delete asp.net-web-api

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

Autofac和IDisposable接口

假设我有以下接口和类:

public interface IFooRepo : IDisposable { 

    //...
}

public FooRepo : IFooRepo { 

    //Methods here

    //Properly implement the IDisposbale.Dispose() here
}
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序中使用Autofac作为IoC容器,如果我将其注册如下,我可以确定它会正确处理吗?

private static IContainer RegisterServices(ContainerBuilder builder) { 

    builder.RegisterType<FooService>().As<IFooService>();

    return
        builder.Build();
}
Run Code Online (Sandbox Code Playgroud)

或者我应该采取进一步的步骤,具体取决于我使用的应用程序类型.(在这种情况下,我使用ASP.NET MVC,但我正在考虑在WCF Web API项目和类库中使用autofac)

.net asp.net-mvc autofac asp.net-mvc-3 wcf-web-api

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

.NET客户端和服务器之间的SignalR安全连接

在SignalR .NET上,我们在客户端和服务器之间建立如下连接:

var connection = new HubConnection("http://mysite/");
Run Code Online (Sandbox Code Playgroud)

接下来,我们订阅事件并开始连接,如下所示:

connection.Start().Wait();
Run Code Online (Sandbox Code Playgroud)

如果我想在客户端和服务器之间建立安全连接怎么办?我们如何通过当前功能实现这一目标?

我注意到课堂System.Net.ICredentials上有一种属性类型HubConnection.这是这样的吗?如果是这样,我们应该如何在服务器端处理集线器的Auth?

asp.net signalr

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

ASP.NET Web API中特定于Controller的自定义委派处理程序

我编写了一个自定义委派处理程序,它将自定义标题添加到响应并检查请求.

我在WebAPi配置中添加了句柄

config.MessageHandlers.Add(new customHandler());

但问题适用于所有控制器.我需要应用特定于控制器的自定义标头.是否可以添加特定于控制器的自定义处理程序?

c# .net-4.0 asp.net-web-api

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

使用X509Certificate2(JwtSecurityTokenHandler)保护JWT

我成功地完成了JwtSecurityTokenHandler工作X509Certificate2.我能够用一个X509Certificate2对象签署令牌.我还能够通过使用证书的原始数据通过X509Certificate2.RawData属性来验证令牌.

这是代码:

class Program
{
    static void Main(string[] args)
    {
        X509Store store = new X509Store("My");
        store.Open(OpenFlags.ReadOnly);
        X509Certificate2 signingCert = store.Certificates[0];

        string token = CreateTokenWithX509SigningCredentials(signingCert);
        ClaimsPrincipal principal = ValidateTokenWithX509SecurityToken(
            new X509RawDataKeyIdentifierClause(signingCert.RawData), token);
    }

    static string CreateTokenWithX509SigningCredentials(X509Certificate2 signingCert)
    {
        var now = DateTime.UtcNow;
        var tokenHandler = new JwtSecurityTokenHandler();
        var tokenDescriptor = new SecurityTokenDescriptor
        {
            Subject = new ClaimsIdentity(new Claim[]
                    {
                        new Claim(ClaimTypes.Name, "Tugberk"),
                        new Claim(ClaimTypes.Role, "Sales"), 
                    }),
            TokenIssuerName = "self",
            AppliesToAddress = "http://www.example.com",
            Lifetime …
Run Code Online (Sandbox Code Playgroud)

.net c# authorization claims-based-identity jwt

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

清空HTTP POST请求或GET请求以通过HTTP API生成随机值

在我的HTTP API中,其中一个端点应返回一个随机生成的值,该值将与端点的经过身份验证的调用方关联.目前,我有以下结构:

GET http://example.com/random-ticket HTTP/1.1
Authorization: Basic base64-encoded-basic-auth-value
Accept: application/json
Host: example.com

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Date: Thu, 03 Oct 2013 07:25:56 GMT
Content-Length: 59

{"user-ticket":"Pfa42634e-1a2e-4a7d-84b9-2d5c46a8dd81"}
Run Code Online (Sandbox Code Playgroud)

发出GET请求以检索随机值.但是,HTTP GET调用应该是幂等的,我的上述实现不符合该规则.另一方面,我不确定是否可以使用空消息体发出HTTP POST请求.

HTTP书执行此类操作的正确方法是什么?

rest http web asp.net-web-api

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

https://api-secure.recaptcha.net/上的recaptcha https问题

我在SSL网站上使用recpatcha,但我没有在某些浏览器上获取图像,因为它的ssl证书已经过期了!

https://api-secure.recaptcha.net/

如果我引用非安全链接,浏览器将发出警告消息.

那么替代方案是什么?

我在ASP.NET MVC下使用它.

asp.net asp.net-mvc recaptcha

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

Install-Package:无法解析远程名称:'packages.nuget.org'

无缘无故,我已经收到这个错误消息一个星期左右;

PM>安装包Elmah安装包:无法解析远程名称:'packages.nuget.org'在行:1 char:16 + Install-Package <<<< Elmah + CategoryInfo:NotSpecified:(:) [ Install-Package],WebException + FullyQualifiedErrorId:System.Net.WebException,NuGet.PowerShell.Commands.InstallPackageCommand

当我导航到浏览器中的链接时,我看到了正确的ODATA Nuget Feed.

检查了feed的fwlink url,它在浏览器上也能正常工作;

http://go.microsoft.com/fwlink/?LinkID=206669

我尝试了Manage Nuget Packages对话框,那里有同样的错误.

顺便说一下,我的内部nuget服务器工作正常.

你可以帮帮我吗?什么阻止我去packages.nuget.org?

.net visual-studio-2010 nuget nuget-package visual-studio-extensions

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

ASP.NET Web API控制器特定的序列化程序

我有一个带有2个控制器的自主Web API:

  • 对于控制器1,我需要默认DataContractSerializer(我暴露EF 5 POCO)
  • 对于控制器2,我需要XmlFormatter,参数UseXmlSerializer设置为true(我暴露了一个XmlDocument)

我试图在控制器初始化期间设置格式化程序,但配置似乎是全局的,影响所有控制器:

public class CustomConfigAttribute : Attribute, IControllerConfiguration
{
    public void Initialize(HttpControllerSettings settings,
    HttpControllerDescriptor descriptor)
    {
        settings.Formatters.XmlFormatter.UseXmlSerializer = true;

    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

xml asp.net xml-serialization asp.net-web-api

13
推荐指数
2
解决办法
2391
查看次数

在MongoDB .NET Driver 2.0中查找所有

我想查询我的MongoDB集合而没有使用MongoDB .NET Driver 2.0的任何过滤器,但我找不到办法.我有以下解决方法,但看起来很奇怪:D

var filter = Builders<FooBar>.Filter.Exists(x => x.Id);
var fooBars = await _fooBarCollection.Find(filter)
    .Skip(0)
    .Limit(100)
    .ToListAsync();
Run Code Online (Sandbox Code Playgroud)

有没有办法在MongoDB .NET Driver 2.0中没有过滤器的情况下发出查询?

.net c# mongodb mongodb-csharp-2.0 mongodb-.net-driver

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