问题标签 [servicestack-bsd]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc-3 - 为什么 ServiceStack 的 SaveUserAuth 不保存到数据库?
我试图让用户能够更改他们恰好在IAuthSession
界面中的显示名称并将更改提交到数据库。
我通过以下方式注册一个容器AppHost
:
然后在我的服务中,我执行以下操作:
尽管代码命中_userAuthRepository.SaveUserAuth
,但没有引发异常并且没有返回任何内容,因为该方法是无效的。但是,数据实际上并没有提交到数据库。在这种特殊情况下,MongoDB。
任何想法为什么它不保存它或者如果出现问题为什么不抛出异常?
serialization - 如何为返回类型为 void 的方法返回一个空的 JSON 对象?
要求:
{}
当我的 ServiceStack 服务方法的返回类型为 时,我正在寻找一种返回空 JSON 对象(例如)的方法void
。
推理:
想要为类型返回空 JSON 对象的void
原因是 jQuery 处理内容类型的方式application/json
。正如这里所讨论200 - OK
的,当收到一个没有内容的状态时,jQuery 会抛出一个错误。这是当前返回的无效内容。
预见问题:
我希望有一种简单的方法可以序列化void
到{}
.
- 如果这是可能的,这样做会产生不利后果吗?
- 它会在预期时影响 ServiceStack c# 客户端
void
吗?
servicestack - ServiceStack BSD 版本 3.9.71 和 protobuf-net 版本
我从 Nuget 下载了 ServiceStack BSD 版本 3.9.71
使用命令
安装包 ServiceStack -版本 3.9.71
和安装包 ServiceStack.Plugins.ProtoBuf -Version 3.9.71
我还安装了 protobuf-net
安装包 protobuf-net
但我有问题,因为 ServiceStack 3.9.71 试图找到 protobuf-net ver.2.0.0.640,
当 Nuget 的 protobuf 的最后一个版本是 2.0.0.668
c# - 在验证器中访问 Servicstack.net 会话
如何在我的验证代码中访问 ServiceStack.net 会话?
在服务实现中,我只是这样做:
但这不适用于我的抽象验证器。
谢谢!
编辑:这是版本 3.9.71.0
redis - 如何将我的自定义 ServiceStack 身份验证提供程序与 Redis 一起使用?
我已经CredentialsAuthProvider
为我的身份验证实现了一个自定义,并将其与内存会话存储中的默认值一起使用。
现在我尝试将会话存储更改为 Redis 并将其添加到我的Configure()
方法中AppHost
:
现在,当我进行身份验证时,我可以看到urn:iauthsession:...
我的 Redis 服务器中添加了一个密钥。[Authenticate]
但是所有具有该属性的路由都会401 Unauthorized
出错。
是这样实现的CustomCredentialsAuthProvider
:
服务栈版本:3.9.71
编辑 :
我试图覆盖该CredentialsAuthProvider
IsAuthorized
方法但没有成功。
但是我从 继承了我的会话对象AuthUserSession
,它也有一个IsAuthorized
方法。当我从此方法返回 true 时,Redis 会话确实与Authenticate
属性一起工作。
c# - 自托管服务器中的 ServiceStack 会话为空
Session
in有问题Service
,Session
正在null
第二次通话(已解决,请参阅帖子底部)。
JsonServiceClient
我有自托管服务器和客户端,它们通过和调用服务器ProtoBufServiceClient
。
在启动客户端应用程序时,我调用:
它有效 -OnAuthenticated
它在我的CustomUserSession : AuthUserSession
.
没有帮助。
然后在一节课上:
Get
方法 Session is中的服务类存在问题null
。如果我实施
我会得到:仅支持通过单例访问的 ASP.NET 请求。
我的 AppHost.cs
目标:
从客户端发送一些变量并在主机上记住它们,直到用户注销。
编辑:
我的工作流程如下所示:
某类1:
- 新的身份验证服务客户端->Post(new Auth(...)); // 登录正常
- 而已
某类2:
- 新服务客户端->Put(new E); // 一些初始化。
- 服务客户端->Get(new G);
服务 G:
- 在 G 请求新服务客户端 TryResolve();
- 客户端->获取(新 W)
服务 E
- 在 E 请求 CustomUserSession 可访问
- 在 W 请求 CustomUserSession 时无法访问。
我的 Custom* 课程看起来像 Scott 的回答。
编辑:
这是我准备复制和粘贴的问题的代码:
解决方案(针对此问题):
- 在客户端应用程序中保存会话 cookie,并在每次调用 Web 服务之前恢复它们。
- 使用 Service::Resolve() 代替 Service::TryResolve
c# - 获取 ServiceStack 实例的基本 URL
确定运行 ServiceStack 实例的基本 URL 路径的最佳方法是什么?例如,如果我将 ServiceStack 配置为在 web.config 中的“/api”基本 URL 上运行,我如何获取字符串“/api”?我想获取此值以构建任意请求 DTO 的 URL,作为 HATEOAS 样式文档。
例如,如果我有一个SomeRequest
带有[Route("/someRequest")]
属性的请求 DTO,则此请求的完整 URL 将是“/api/someRequest”。ToUrl
扩展方法仅返回基本 URL 下方路径的一部分:
我还没有找到任何简单的方法来做到这一点。似乎 ServiceStack 没有公开返回“/api”基本路径值的配置属性。使用 ServiceStack 4 可能可以检查 web.config以获取 ServiceStack 处理程序路径,但我无法弄清楚如何使用我们当前的 SS 3 配置来执行此操作。
该Request.GetAbsolutePath()
方法将生成当前请求的完整路径,例如“/api/someRequest”,然后我可能会在此方法和ToUrl()
扩展方法之间进行一些字符串比较以确定基本路径,但这似乎也是一个非常脆弱的解决方案.
有没有更好的方法来获取这个基本 URL?
c# - ServiceStack + FluentValidation 未通过 ResolveService 触发
我正在使用ServiceStack + FluentValidation v3。
我可以直接发布到 API 并体验请求验证,但是,当从我的 MVC 控制器中已解析的服务实例调用时,不会触发验证。
使用 Fiddler,我POST
执行以下操作:
响应,根据需要:
从我的 MVC 控制器:
不会抛出异常。
在服务中手动创建 IValidator 的实例并引发异常确实会冒泡异常。
为什么验证不会针对来自 的请求触发AppHostBase.ResolveService
?
razor - 为什么我的 ServiceStack.Razor 页面在我重建应用程序之前不会刷新?
我在 ServiceStack (3.9) 中托管了一个 API 项目,并且添加了一个 /docs 文件夹,其中包含两个 Razor 文件,_layout.cshtml
并且default.cshtml
我没有配置缓存;我的 AppHost 类如下所示:
我的 Razor 页面运行良好 - 转到 localhost/api/docs 会显示默认页面并使用提供的布局 - 但如果我对 Razor 代码进行更改,我需要重新编译应用程序,然后才能在浏览器中看到它。
我的理解是 ServiceStack 视图像 ASP.NET MVC 视图一样工作——它们在请求时被解释,并且对视图代码的任何更改都会立即显示出来,如果你想缓存你渲染的视图,你需要明确地配置它. 我是否错过了配置设置,或者我需要做些什么来重新编译 ServiceStack 页面而不需要重建项目?
c# - Servicestack - 请求 DTO 的多个 IReturn
是否可以有多个IReturn<>
请求 DTO?
例如以下路线:
根据请求方法,我想要另一个IReturn
. Post-Put-Delete Request 仅在请求成功时才应返回确认:
但在 GET 请求中,我想要一个:
如果有办法在 Swagger Api/元数据页面中反映这一点,那也很好。目前只显示第一个IReturn
。
这是可能的还是为每个不同的人创建一条路线会更好IReturn
?