标签: servicestack

如何在servicestack.net中实现身份验证

我正在调查servicestack.net - 但它的示例和文章似乎没有涵盖身份验证 - 这是由servicestack.net处理的 - 如果是这样的话?

特别是我有兴趣实现对以下方面的支持:

  • OAuth(因此能够检查原始请求并验证它/检索关联的用户信息并在将其传递到servicestack.net进行处理之前与请求关联).
  • 基于会话/ cookie的身份验证(因此允许已经具有有效ASP.Net会话的Ajax客户端将其用于身份验证,而不是需要显式传递登录和密码详细信息以获取适合随后请求提交的会话令牌).

有人指出我在使用ServiceStack.Net框架时证明身份验证/安全性的文档/示例的方向.

c# security authentication servicestack

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

如何在Active Directory/Windows身份验证中使用Servicestack身份验证?

我正在创建一个安全(SSL)公共服务,其中用户凭据驻留在Active Directory中.我想利用ServiceStack的身份验证,并阅读了wiki文章.我已经编写了代码来验证AD的用户凭据.我有几个问题.

  1. 我使用哪个Auth提供商?凭据,基本身份验证还是自定义?该服务需要SSL,因此Basic Auth是安全的,但密码将被加密以增加安全性.
  2. 我是否仍需要存储UserAuth并缓存AuthUserSession?
  3. monotouch客户端是否支持身份验证?

更新2:我最终使用CredentialsAuthProvider制作了与AD集成的测试SS服务.然而,我的最终目标是在客户打电话时拥有1个api网站.所以基本上是SS MVC网站.

更新:

经过一些研究,SS正在考虑做一个可能在未来支持Windows身份验证的商业产品,这是我的理解.我在SS Google小组的mythz评论中读到了这一点.我问这个问题的原因是我的公司使用IWA构建内部应用程序并且在没有IWA的情况下采用SS MVC很难.我想我读过你可以在一个使用IWA的ASP.NET站点上托管SS MVC站点,但我还没有尝试过.

.net authentication active-directory servicestack

25
推荐指数
2
解决办法
3336
查看次数

如何强制Monotouch AOT编译器查看嵌套的泛型方法?

我不得不跳过篮球,但我几乎设法在我的项目中ServiceStack使用iOS Monotouch.一个运行时JIT异常就是:

System.ExecutionEngineException: Attempting to JIT compile method 'ServiceStack.Text.Json.JsonTypeSerializer:GetWriteFn<int> ()' while running with --aot-only. 
Run Code Online (Sandbox Code Playgroud)

违规代码非常简单:

   internal WriteObjectDelegate GetWriteFn<T>()
    {
        return JsonWriter<T>.WriteFn();
    }
Run Code Online (Sandbox Code Playgroud)

作为测试,我修改了SS代码以使内部方法和类型公开,并在我的项目的启动代码中包含以下内容(实际上被调用).

var ick = ServiceStack.Text.Json.JsonWriter<int>.WriteFn();
var erk = ServiceStack.Text.Json.JsonTypeSerializer.Instance.GetWriteFn<int>();
Run Code Online (Sandbox Code Playgroud)

由于某种原因,这仍然没有提醒AOT,当上面的代码执行时我得到了异常!这是因为泛型参数是值类型吗?或者是因为这些是静态类和方法?如何强制Monotouch AOT上述方法?

有问题的SS代码位于JsonTypeSerializer.cs和JsonWriter.Generic.cs中:https: //github.com/ServiceStack/ServiceStack.Text/tree/master/src/ServiceStack.Text/Json

xamarin.ios aot servicestack

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

StackExchange.Redis和ServiceStack.Redis之间的区别

有人可以解释一下ServiceStack.RedisStackExchange.Redis c#库的区别吗?

c# redis stackexchange servicestack

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

在ServiceStack中覆盖字段名称反序列化

我正在使用ServiceStack反序列化一些HTML表单值,但无法弄清楚如何覆盖每个字段应该从中读取的值.

例如,表单将值发布到,first_name但调用我的POCO上的属性FirstName.我将如何在ServiceStack中进行映射

serialization servicestack

23
推荐指数
2
解决办法
8526
查看次数

ServiceStack应该是MVC应用程序中的服务层还是应该调用服务层?

我正在创建一个MVC网站,并打算创建一个Web API,以便在网站内使用,也可能由第三方使用.

从MVC控制器,我将调用一个服务层,它将包含业务逻辑,作用于域模型,执行验证,进行基础设施外部服务调用等.服务层反过来将调用存储库以进行任何数据库交互.

现在,我喜欢ServiceStack的外观,并打算将它用于Web API - 它似乎比ASP.NET MVC 4 Web API更成熟.我的问题是,我应该在上面的服务层中调用ServiceStack API,类似于MVC控制器,还是应该将其作为服务层,为Web客户端和MVC控制器提供服务?

asp.net-mvc service-layer servicestack asp.net-web-api

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

为什么ServiceStack.Text没有将日期默认为iso8601?

如果我使用Newtonsoft.Json.NET,则默认使用iso8601(即:) 2011-06-02T09:34:29+02:00来序列化/反序列化日期.

为什么ServiceStack.Text不默认为此,我需要将其指定为配置设置?

.net json json.net servicestack

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

将C#枚举定义序列化为Json

在C#中给出以下内容:

[Flags]
public enum MyFlags {
  None = 0,
  First = 1 << 0,
  Second = 1 << 1,
  Third = 1 << 2,
  Fourth = 1 << 3
}  
Run Code Online (Sandbox Code Playgroud)

是否有任何现有方法ServiceStack.Text用于序列化到以下JSON?

{
  "MyFlags": {
    "None": 0,
    "First": 1,
    "Second": 2,
    "Third": 4,
    "Fourth": 8
  }
}
Run Code Online (Sandbox Code Playgroud)

目前我正在使用下面的例程,有没有更好的方法来做到这一点?

public static string ToJson(this Type type)
    {
        var stringBuilder = new StringBuilder();
        Array values = Enum.GetValues(type);
        stringBuilder.Append(string.Format(@"{{ ""{0}"": {{", type.Name));

        foreach (Enum value in values)
        {
            stringBuilder.Append(
                string.Format(
                    @"""{0}"": {1},", 
                    Enum.GetName(typeof(Highlights), …
Run Code Online (Sandbox Code Playgroud)

c# enums serialization json servicestack

22
推荐指数
2
解决办法
7095
查看次数

ServiceStack默认格式

我想将ServiceStack的默认格式设置为JSON,而不是从浏览器访问服务时通常返回的HTML格式的响应.我知道这可以通过发送?format = json参数或将Accept标头设置为application/json在每个请求中指定.有没有办法改变这一点,而不必依赖请求中的这些提示?

.net c# servicestack

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

如何在ServiceStack OrmLite中检索自动递增的Id?

对于具有标识的表:

    [AutoIncrement]
    public int Id { get; set;}
Run Code Online (Sandbox Code Playgroud)

将新行插入数据库时​​,检索对象Id的最佳方法是什么?

例如:

db.Insert <>(new User());

插入后Id的值为0,但在数据库中显然不是这种情况.我能看到的唯一可能性如下:

Id = (int)db.GetLastInsertId();
Run Code Online (Sandbox Code Playgroud)

但是我不相信这是一个安全的号召.如果同时发生100个插入,则可能会返回另一个插入的Id.在EF中进行插入时,将为您设置ID.

有谁知道最好的方法吗?

sql-server servicestack ormlite-servicestack

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