小编Rob*_*bin的帖子

在ServiceStack中,可以模拟Request.OriginalRequest对象进行单元测试吗?

我想让我的ServiceStack服务可测试.

现在我有:

[RequireFormsAuthentication]
public object Delete(DeleteRequest request)
{
     var originalRequest = (HttpRequest)Request.OriginalRequest;
     var identity = originalRequest.RequestContext.HttpContext.User.Identity;
     return othercode(identity);
}
Run Code Online (Sandbox Code Playgroud)

RequireFormsAuthentication的位置

public class RequireFormsAuthenticationAttribute : RequestFilterAttribute
{
    public override void Execute(IHttpRequest req, IHttpResponse res, object requestDto)
    {
        var originalRequest = (HttpRequest)req.OriginalRequest;
        var identity = originalRequest.RequestContext.HttpContext.User.Identity;
        if (!identity.IsAuthenticated)
        {
            res.StatusCode = (int)HttpStatusCode.Forbidden;
            res.EndServiceStackRequest(skipHeaders: true);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经嘲笑了'othercode()'使用的所有依赖项,剩下的就是基类Service中的东西.是否有一种模式/策略/方法/我缺少的东西使这个微不足道?

c# unit-testing moq servicestack

6
推荐指数
2
解决办法
1660
查看次数

如何在SignalR(.NET客户端)中使用自定义基本身份验证?

有很多关于如何使用SignalR进行Forms身份验证或Windows身份验证的信息.我有兴趣使用自己的身份验证DB.我使用的是.NET客户端,因为连接代理是一种服务,而不是支持人类的Web浏览器.我理想情况下喜欢我的客户端代码:

hubConnection.Credentials = new NetworkCredential(userName, password);
Run Code Online (Sandbox Code Playgroud)

我的服务器代码在集线器上使用[授权]并且可以使用Context.User.所有的通讯都是通过https,所以我不关心纯文本.

我已经阅读了asp.net 基本认证指南,该指南展示了如何使用IHttpModule覆盖认证机制.但是,当我断开HttpModule中的代码时,似乎永远不会在来自.NET SignalR客户端的请求中设置'Authorization'标头.

我想要做的就是从客户端轻松传递用户名和密码,并编写服务器上的身份验证方式.那么难吗?没有魔法.没有Active Directory.只是由我认证.

我当前的工作方法是设置在SignalR级别解释的自定义标头(使用自定义AuthorizeAttribute),但显然"正确的方法"不是在授权级别进行身份验证而是让网络服务器执行在任何SignalR事件发生之前.

任何人都可以描述一个完整的,但简单,自定义身份验证的良好程序?

authentication iis asp.net-mvc-4 signalr signalr.client

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

是否可以使用茉莉模拟网络故障来模拟ajax请求?

我有一个网络应用程序需要检查用户是否连接到互联网.在实现中,如果对已知端点的ajax ping成功,则check()函数将为true,如果ajax调用以任何方式失败,则为false.

在Jasmine中,我可以request.respondWith({status:400, etc})用来模拟失败,但我无法弄清楚如何模拟根本没有发出的更基本的错误.

实际上,当甚至无法进行调用时,浏览器似乎"返回"状态代码0和readyState 4.

我应该如何在Jasmine测试中解决这个问题?

javascript jasmine jasmine-ajax

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