我正在调查servicestack.net - 但它的示例和文章似乎没有涵盖身份验证 - 这是由servicestack.net处理的 - 如果是这样的话?
特别是我有兴趣实现对以下方面的支持:
有人指出我在使用ServiceStack.Net框架时证明身份验证/安全性的文档/示例的方向.
我正在创建一个安全(SSL)公共服务,其中用户凭据驻留在Active Directory中.我想利用ServiceStack的身份验证,并阅读了wiki文章.我已经编写了代码来验证AD的用户凭据.我有几个问题.
更新2:我最终使用CredentialsAuthProvider制作了与AD集成的测试SS服务.然而,我的最终目标是在客户打电话时拥有1个api网站.所以基本上是SS MVC网站.
更新:
经过一些研究,SS正在考虑做一个可能在未来支持Windows身份验证的商业产品,这是我的理解.我在SS Google小组的mythz评论中读到了这一点.我问这个问题的原因是我的公司使用IWA构建内部应用程序并且在没有IWA的情况下采用SS MVC很难.我想我读过你可以在一个使用IWA的ASP.NET站点上托管SS MVC站点,但我还没有尝试过.
我不得不跳过篮球,但我几乎设法在我的项目中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
有人可以解释一下ServiceStack.Redis和StackExchange.Redis c#库的区别吗?
我正在使用ServiceStack反序列化一些HTML表单值,但无法弄清楚如何覆盖每个字段应该从中读取的值.
例如,表单将值发布到,first_name但调用我的POCO上的属性FirstName.我将如何在ServiceStack中进行映射
我正在创建一个MVC网站,并打算创建一个Web API,以便在网站内使用,也可能由第三方使用.
从MVC控制器,我将调用一个服务层,它将包含业务逻辑,作用于域模型,执行验证,进行基础设施外部服务调用等.服务层反过来将调用存储库以进行任何数据库交互.
现在,我喜欢ServiceStack的外观,并打算将它用于Web API - 它似乎比ASP.NET MVC 4 Web API更成熟.我的问题是,我应该在上面的服务层中调用ServiceStack API,类似于MVC控制器,还是应该将其作为服务层,为Web客户端和MVC控制器提供服务?
如果我使用Newtonsoft.Json.NET,则默认使用iso8601(即:) 2011-06-02T09:34:29+02:00来序列化/反序列化日期.
为什么ServiceStack.Text不默认为此,我需要将其指定为配置设置?
在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) 我想将ServiceStack的默认格式设置为JSON,而不是从浏览器访问服务时通常返回的HTML格式的响应.我知道这可以通过发送?format = json参数或将Accept标头设置为application/json在每个请求中指定.有没有办法改变这一点,而不必依赖请求中的这些提示?
对于具有标识的表:
[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.
有谁知道最好的方法吗?
servicestack ×10
c# ×4
.net ×3
json ×2
aot ×1
asp.net-mvc ×1
enums ×1
json.net ×1
redis ×1
security ×1
sql-server ×1
xamarin.ios ×1