标签: servicestack

ServiceStack.OrmLite如何按属性忽略属性

public class User
{
   public long Id {get;set;}

   [References(typeof(City))]
   public long CityId {get;set;}

   [????]
   public City {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用ServiceStack.OrmLite.我正在使用ReferenceKey(CityId)和Reference(City).ReferenceKey用于创建Db,Reference用于在我的代码中使用对象.

orm servicestack

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

如何在servicestack中记录调试请求和响应

我想记录servicestack webservice的整个请求和响应对.我查看了响应文件管理器,但是公开的流是只读的.

logging servicestack

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

如何在ServiceStack中进行身份验证后重定向

我像这样覆盖了CredentialsAuthProvider:

public override bool TryAuthenticate(IServiceBase authService, string userName, string password)
        {
            //TODO: Auth the user and return if valid login
            return true;
        }

public override void OnAuthenticated(IServiceBase authService, IAuthSession session, IOAuthTokens tokens, Dictionary<string, string> authInfo)
        {
            base.OnAuthenticated(authService, session, tokens, authInfo);

            //User has been authenticated

            //Find the user's role form the DB

            if (roleA)
                //GOTO mypage1

            if (roleB)
                //GOTO mypage2
        }
Run Code Online (Sandbox Code Playgroud)

我对〜/ auth/Credentials执行一个简单的帖子,当身份验证工作并调用OnAuthenticated方法时,如何根据角色或类似的东西将用户重定向到适当的页面?

我厌倦了在OnAuthenticated方法中执行以下操作,但它没有达到预期的效果:

authService( "/视图/客户").

使用入门模板更新(请参阅下面的评论):

public class CustomCredentialsAuthProvider : CredentialsAuthProvider
    {
        public override bool TryAuthenticate(IServiceBase authService, string userName, string …
Run Code Online (Sandbox Code Playgroud)

.net c# servicestack

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

使用ServiceStack使用REST Web服务时的用户身份验证

ServiceStack文档都充满了关于如何使用示例服务器端实现用户的认证.但是如何在客户端设置用户凭据?

我使用ServiceStack来使用这样的JSON REST服务:

var restClient = new JsonServiceClient (baseUri);
var response = restClient.Get<MyResponse> ("/some/service");
Run Code Online (Sandbox Code Playgroud)

如何在请求中添加任何形式的身份验证?我想要使​​用的Web服务使用OAuth 1.0,但我也有兴趣添加自定义身份验证.

在我的代码中,我之前已经成功执行了OAuth令牌交换,因此我已经拥有了一个有效的访问令牌,并且现在需要使用此访问令牌及其来签署每个REST请求token_secret.

c# authentication json web-services servicestack

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

ServiceStack - 空请求类?

我对ServiceStack有疑问.为什么有空的请求类,为什么我们必须有一个请求类?例如:

[Route("/test", "GET")]
public class Test
{

}

public class TestResponse
{
    public string Date { get; set; }
}

public class TestService : Service
{
    public object Get(Test test)
    {
        return new TestResponse { Date = DateTime.Now.ToString() };
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我没有通过我的请求传递对象,我的服务会失败吗?

然后我是我的Global.asax文件,我有:

public class AxDataAppHost : AppHostBase
{
    public AxDataAppHost() :
        base("AxData", typeof(TestService).Assembly)
    {
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我有超过1个服务的更多,在上面的例子中我使用的TestService,但如果我有什么一个Customers,OrdersProducts?我该如何处理多项服务?

servicestack

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

为什么ServiceStack的新API会提升"对象"返回类型而不是更强类型的东西?

例如,如果我有标准的请求和响应DTO,通过链接IReturn<T>,具有如下所示的服务方法签名的原因是什么,如各种在线示例中所示(例如这一个,尽管并非始终如一):

public object Get(DTO.MyRequest request)
Run Code Online (Sandbox Code Playgroud)

而不是:

public IList<DTO.MyResponse> Get(DTO.MyRequest request)
Run Code Online (Sandbox Code Playgroud)

object这里的返回类型只是为了支持输出流的gzip压缩等服务功能,这会导致输出为字节数组吗?似乎人们希望从这些所谓的"动作"调用中获得适当的更强的返回类型,除非我遗漏了一些常见的场景或用例.

servicestack

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

接收大数据时,ServiceStack会抛出StackOverflowException

我使用ServiceStack的JsonServiceClient和Silverlight 5从我的ASP.Net服务器接收JSON数据.它适用于简短的JSON字符串,但是当涉及到非常大量的数据时,会抛出StackOverflowException ServiceStack.ServiceClient.Web.AsyncServiceClient.ReadCallBack<>.

所以我检查了GitHub上的最新源代码,并注意到数据是从块中以块状方式读取的,大小为4096字节.问题是这个方法读取一个块并告诉流完成后递归调用自身.我们收到的数据越多,发生的递归调用就越多.这就是当接收到的数据太大时应用程序崩溃的原因.

思路:

  • 将方法重构为迭代而不是递归.对于所有这些有条件的回报,等待,尝试捕获等等,这似乎是一项艰巨的任务.
  • 增加块大小.我不知道4096这里有什么理由,所以我宁愿不单独做这件事.

无论如何,在我下载所有源代码,自己修改和编译之前,我想听听你对此的看法.这是一个错误还是我错了?

.net c# stack-overflow silverlight servicestack

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

使用ServiceStack而不是ASP.NET WebAPI的任何好处

我正在计划一个将由浏览器/ JavaScript和Android App使用的Web API(也向其他潜在客户开放).虽然我读到使用ServiceStack和WCF有很多好处,但我不确定它是否仍然是我们拥有ASP.NET WebAPI的更好选择.我发现这个问题是ServiceStack作者将它与WCF进行比较,但是说"WebApi与WCF的不同之处在于它鼓励REST-ful API设计."

那么,ServiceStack仍然是比ASP.NET WebAPI更好的选择,为什么呢?

另外,ServiceStack如何适应OWIN/Katana故事?

servicestack asp.net-web-api

9
推荐指数
0
解决办法
5318
查看次数

最新版本的ServiceStack 3中是否存在构建问题?

在使用ServiceStack 3.9.71.0编译项目时,我在visual studio中出现了以下警告(似乎也影响了最新版本).不知道为什么它之前没有显示,但是在我创建了一个引用我的主项目并且都引用了相同服务堆栈DLL的测试库后它已经开始显示:

警告2发现无法解析的同一依赖程序集的不同版本之间发生冲突.当日志详细程度设置为详细时,这些引用冲突将在构建日志中列出.C:\ Program Files(x86)\ MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets 1635

检查构建日志显示:

10>"ServiceStack.Interfaces,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"和"ServiceStack.Interfaces,Version = 3.9.60.0,Culture = neutral,PublicKeyToken = null"之间存在冲突.10>"ServiceStack.Interfaces,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"被选中,因为它是主要的并且"ServiceStack.Interfaces,Version = 3.9.60.0,Culture = neutral,PublicKeyToken = null"不是.10>依赖于"ServiceStack.Interfaces,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null"[C:\ proj\packages\ServiceStack.Common.3.9.71\lib \net35\ServiceStack.Interfaces.dll]的引用] ......

此错误是正确的,因为除了旧版本的ORMLite之外,NuGet中的最新版本似乎引用了旧版本的ServiceStack.Interfaces(http://i.imgur.com/4vw3069.jpg).我已从我的系统中删除了所有以前版本的ServiceStack,因此它不会拾取任何旧的DLL.我的项目只引用了ServiceStack,common,interfaces和text; 我删除了ORM,因为我没有使用它,但将它添加到两个项目都无济于事.

有点不确定我如何解决这个错误,因为Github似乎自3.9.60后没有更新,任何想法?

servicestack servicestack-bsd

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

如何使用ServiceStack中的证书对客户端进行身份验证?

我正在探索使用ServiceStack作为WCF的替代方案.我的一个要求是服务器和客户端必须使用证书进行相互身份验证.客户端是一项服务,因此我无法使用涉及用户输入的任何类型的身份验证.此外,客户端需要能够使用单声道在Linux上运行,因此Windows身份验证已经完成.

我使用netsh.exe将服务器证书绑定到服务器端口,验证客户端是否获取服务器证书并使用wireshark加密数据.但是我不能为我的生活弄清楚如何配置服务器以要求客户端证书.

有些人建议使用请求过滤器来验证客户端证书,但这似乎非常低效,因为每个请求都会检查客户端证书.性能是非常重要的.创建自定义IAuthProvider似乎很有希望,但所有文档和示例都面向涉及用户交互的身份验证类型,而不是证书.

https://github.com/ServiceStack/ServiceStack/wiki/Authentication-and-authorization

是否可以使用证书通过自托管ServiceStack服务相互验证客户端和服务器?

这是我的测试服务供参考.

public class Host : AppHostHttpListenerBase
{
    public Host()
        : base("Self-hosted thing", typeof(PutValueService).Assembly)
    {
        //TODO - add custom IAuthProvider to validate the client certificate?
        this.RequestFilters.Add(ValidateRequest);

        //add protobuf plugin
        //https://github.com/ServiceStack/ServiceStack/wiki/Protobuf-format
        Plugins.Add(new ProtoBufFormat());

        //register protobuf
        base.ContentTypeFilters.Register(ContentType.ProtoBuf,
                (reqCtx, res, stream) => ProtoBuf.Serializer.NonGeneric.Serialize(stream, res),
                ProtoBuf.Serializer.NonGeneric.Deserialize);
    }

    public override void Configure(Funq.Container container)
    {}

    void ValidateRequest(IHttpRequest request, IHttpResponse response, object dto)
    {
        //TODO - get client certificate?
    }
}

[DataContract]
[Route("/putvalue", "POST")]
//dto
public class PutValueMessage : IReturnVoid
{
    [DataMember(Order=1)]
    public …
Run Code Online (Sandbox Code Playgroud)

c# client-certificates servicestack mutual-authentication

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