Tag: nancy

南希文档中描述的表单身份validation是否容易受到会话劫持的影响?

我阅读了Nancy Forms Authentication的文档。 据我所知,那里推荐的方法会导致终身会话ID: “标识符是将放入身份validationcookie的令牌,用于重新建立执行请求的用户的身份,因此您无需为每个请求输入凭据。” 据我所知,“标识符”是大多数人称之为会话ID的内容。 同样重要的是要知道标识符应被视为为其生成的用户的永久标识符,并将在请求和应用程序会话中重用。 这真的是推荐的方法吗? 如果我理解正确,这意味着会话ID永远不会改变,永远不会过期。 因此会话ID相当于密码 每次请求都会在cookie中重新传输 如果您按照文档结束,可能会以明文forms存储在数据库中 我知道我可以与南希不同地实现这一点,但我的观点是,这种方法不应该在文档中作为参考来解释。 因此,如果攻击者成功窃取了该会话ID,例如通过XSS攻击,他就可以终身访问系统。 请纠正我,并告诉我我的想法中的错误!

在没有System.Web的情况下使用OWIN时,使用什么代替HttpContext

我们目前有一个使用OWIN连接的NancyFx项目。 我们没有使用System.Web,我们需要一些地方来放置我们的上下文,这些上下文除了HttpContext之外还有一个请求的生命周期。 我们已经开始在线程静态变量上实现上下文,因此我们可以在应用程序的任何位置访问上下文,但我们担心使用Async调用会丢失此线程静态上下文。 当你从System.Web离婚时,你在HttpContext的lue中用什么作为静态访问器?

NancyFX:如何使用bootstrapper来持久化对象

我有一个我想在post / get中访问的XML文件。 我不希望每次我按照特定应用程序点击post / get路径时都要加载它。 我想我应该加载一个对象来存储我的数据一次在引导程序中并根据我的需要引用它,但找不到任何具体的例子 – 如何实现这一点?

为什么我不能在南希注册自定义JSON.Net实现?

我安装了以下内容: 并且: public sealed class Startup { public void Configuration(IAppBuilder app) { var options = new NancyOptions(); app.UseNancy(options); } } public sealed class CustomJsonNetSerializer : JsonSerializer { public CustomJsonNetSerializer() { ContractResolver = new CamelCasePropertyNamesContractResolver(); DateFormatHandling = DateFormatHandling.IsoDateFormat; Formatting = Formatting.Indented; } } 然后在我的Bootstrapper : protected override void ConfigureApplicationContainer(TinyIoCContainer container) { base.ConfigureApplicationContainer(container); container.Register(); } 最后在路线上: public […]

告诉Nancy将枚举序列化为字符串

Nancy默认情况下在生成JSON响应时将枚举序列化为整数。 我需要将枚举序列化为字符串。 有一种方法可以通过创建JavaScriptPrimitiveConverter来自定义Nancy的JSON序列化。 例如,这是我为ONE枚举自定义序列化所做的: 创建自定义类: public class JsonConvertEnum : JavaScriptPrimitiveConverter { public override IEnumerable SupportedTypes { get { yield return typeof(MyFirstEnum); } } public override object Deserialize( object primitiveValue, Type type, JavaScriptSerializer serializer) { if (type == typeof(MyFirstEnum)) { var serialized = (string)primitiveValue; MyFirstEnum deserialized; if (Enum.TryParse(serialized, out deserialized)) { return deserialized; } else { […]

如何防止Nancy从缓存视图

我已经开始在自主模式下测试Nancy了。 到目前为止,除了一个令我烦恼的问题之外,还有这么好:我如何防止它在开发过程中缓存我的观点? 我确实注意到一个注释 ,在调试模式下应该禁用视图缓存,但它似乎对我不起作用 – 每当我对HTML进行更改时,我都必须重新启动应用程序。 我正在使用Nancy 0.10内置超级简单视图引擎和.html文件。

南希:从“/”提供静态内容(例如index.html)?

我正在尝试使用Nancy制作单页Web应用程序。 因此,我希望我的根URL提供一个普通的.html文件,没有任何视图逻辑或任何东西。 我试过了 Get[“/”] = parameters => Response.AsHtml(“content/index.html”) 但是没有AsHtml 。 我试过一个自定义引导程序 conventions.StaticContentsConventions.Add( StaticContentConventionBuilder.AddFile(“/”, @”content/index.html”) ); 但显然它认为“/”不是文件 – 南希给我一个目录列表在http://localhost:/而不是。 我该怎么办? 这应该不是这么难,对吧? PS。 关闭该目录列表的任何方法? 感觉不安全。

关于IIS和Windows身份validation的NancyFx

我已经将MVC + AngularJS应用程序转换为使用NancyFx + AngularJS(因为我并没有真正使用任何MVC的东西)。 我正在使用VS2013,它在IIS(以及我的开发环境中的IIS Express)下运行。 我可以通过检查OwinEnvironment的server.User组件来获取当前登录的用户。 我目前正在使用Microsoft.Owin.Host.SystemWeb作为大多数演示。 当我在我的模块中向Get请求添加RequiresAuthentication时,即使我已登录,我也会在IE中弹出一个输入凭据。即使我输入凭据,我只是不断获得弹出窗口,它永远不会到达网站。 我有一些问题: 1)如果使用Windows身份validation和RequiresAuthentication,我仍然需要在web.config中使用身份validation模式=“Windows”。 2)是否可以在没有Microsoft.Owin.Host.SystemWeb的情况下使用IIS以避免ASP.NET管道? 我遇到过关于Project Helios和Microsoft.Owin.Host.IIS(Nuget)的文章,但这已经有一段时间没有用过了,只是一个Alpha – 这是怎么回事? 3)使用IIS,NancyFX和Windows身份validation以及RequiresAuthentication和Roles的事实上的方法是什么? 我看了很多文章和stackoverflow问题,但还没有找到明确的答案。

什么时候你真的需要在Web框架上异步?

Async已成为.net中的流行语,MS已在Web API 2中引入它,以便可以处理更多请求,而其他请求则等待IO完成。 虽然我可以看到它的好处,但这真的是一个问题吗? x64架构在线程池中有30000多个线程,所以除非你的网站上有那么多并发用户真的需要异步? 即使你有那么多没有缓存的并发用户,我也很确定SQL Server会因为那么多请求而崩溃? 除了它是否真的需要在Web框架上进行异步路由时才会shiny?

南希:我如何捕捉所有请求,无论动词或路径如何

我想使用Nancy的默认路由,因为它干净且运行良好,但是我想要一个选项将所有传入的请求记录到控制台(我使用的是Nancy的自托管模块),而不管是否存在显式路由。 简而言之,我希望能够捕获动词,传入的请求URI,任何发布的数据(如果它是POST请求)等。 我该怎么做呢? Before / After似乎只运行与现有路由匹配的请求,而404也不会触发OnError 。 此外,使用Get[“/(.*)”]仅捕获GET请求,并将忽略其他HTTP谓词。