Tag: asp.net

对于Web开发新手,ASP.NET或Ruby on Rails?

我在Windows平台上使用C / C ++进行客户端 – 服务器应用程序开发方面的经验。 我想进入基于Web的应用程序开发。 我对Web应用程序开发概念有一般的了解。 哪个Web应用程序开发框架最快学习/掌握? 我目前正在学习.NET和C#,但目前的Microsoft Web应用程序开发堆栈似乎拥有更为陡峭的学习曲线,其中包括ASP.NET,MVC,SilverLight和WCF等无数技术。 另一方面,我一直听说Ruby和Rails,看起来Ruby更容易学习,而Rails固有的使用MVC是开发Web应用程序最自然的方式,开发起来也快得多。 我更倾向于Ruby,但我担心我可能会慢慢地从Windows平台转移到一些未知的领域。

从ASP.NET转向Ruby on Rails

我是过去5年的ASP.NET开发人员,仍然喜欢它。 关于Ruby on Rails有很多好的声音。 我想向社区提问,有没有值得尝试以下面的观点来学习Ruby On Rails作为ASP.NET Web开发人员。 可扩展性 文档 社区支持 托管解决方案 部署ETC.

如果部分响应已发送(分块),如何将浏览器发送到错误页面

这是典型的场景:评估页面,并且有一个缓冲区 – 一旦缓冲区已满,评估页面的一部分就会被发送到浏览器。 这使用HTTP 1.1分块编码。 但是,其中一个块(在已经发送第一个块之后)可能会发生错误。 在这种情况下: 您无法重定向(发送Location标头),因为标头和响应状态已经发送 你不能做服务器端重定向(转发),因为新页面必须在已经发送的部分之后呈现 – 它肯定会看起来很难看。 那么在这种情况下你应该怎么办? 我问了一个问题 ,你是否可以在chunked预告片中发送一个Location标题,但这是低级的http,语言的抽象可能不允许它,即使它是可能的(并且它可能不支持跨浏览器) 另一种选择是发送window.href.location=”errorPage” ,从而强制客户端重定向,但这很难看。 另外,您必须使用关闭部分页面中任何可能未关闭的标记。 (我正在标记主要的网络语言/框架,因为这是一个普遍的问题)

为什么Time.strptime()返回当前日期?

向私有(无公共文档)API发出GET请求以JSON格式返回数据。 我感兴趣的价值是日期。 它以ASP.NET JSON日期格式返回日期。 这是它的样子: AanmeldDatum: “/Date(1406675114000+0200)/” 还有一个名为AangebodenSindsTekst的变量,意思是OfferedSinceText,它的值是“8 augustus 2014”。 因此,未知的Date格式应该被解析为该特定值。 我试过这个: require ‘time’ foo = Time.strptime(‘1406675114000+0200’, ‘%N’) # => 2014-08-12 13:38:46 +0200 foo = Time.strptime(‘1406675114000+0200’, ‘%N%z’) # => 2014-08-12 14:38:58 +0200 但它只是返回当前时间。 我知道100%肯定/Date(1406675114000+0200)/解析时,应该返回日期2014-07-30 。 问题是我该如何确定它呢?

浏览器IP地址

我有2个应用程序 1 Ruby(不是由我编写的。我对Ruby一无所知)和其他ASP.Net Ruby应用程序确定用户的IP地址(我告诉“使用在HTTP_X_FORWARDED中找到的第一个IP”)并将其散列版本传递给ASP.Net应用程序。 然后ASP.Net应用程序再次确定客户端的IP地址(使用Request.UserHostAddress)并散列值。 然后比较哈希。 通常这些哈希对我们所有的客户都是相同的(如您所料)。 但是,我们有1个新客户,但事实并非如此…… 他工作场所的每台计算机显然都会产生不相等的哈希值 怎么会这样?

在Ruby中重新实现ASP.NET成员资格和用户密码哈希

我有一个庞大的用户数据库(~200,000),我正在从ASP.NET应用程序转移到Ruby on Rails应用程序。 我真的不想让每个用户重置他们的密码,所以我试图在Ruby中重新实现C#密码散列函数。 旧function是这样的: public string EncodePassword(string pass, string saltBase64) { byte[] bytes = Encoding.Unicode.GetBytes(pass); byte[] src = Convert.FromBase64String(saltBase64); byte[] dst = new byte[src.Length + bytes.Length]; Buffer.BlockCopy(src, 0, dst, 0, src.Length); Buffer.BlockCopy(bytes, 0, dst, src.Length, bytes.Length); HashAlgorithm algorithm = HashAlgorithm.Create(“SHA1”); byte[] inArray = algorithm.ComputeHash(dst); return Convert.ToBase64String(inArray); } 示例哈希密码和salt是(并且使用的密码是“password”): 哈希密码:“weEWx4rhyPtd3kec7usysxf7kpk =”盐:“1ptFxHq7ALe7yXIQDdzQ9Q ==”密码:“密码” 现在使用以下Ruby代码: require “base64” […]