小编rou*_*uen的帖子

ASP.NET MVC应用程序的性能和安全性 - 处理程序映射和模块

我刚读了一篇有趣的文章.基本上它说,你应该通过两种方式为每个应用程序微调IIS设置:

  1. 处理程序映射 - 删除应用程序未使用的所有内容
  2. 模块 - 删除所有未使用的应用程序

好吧,我现在开发ASP.NET已经有一段时间了,即使是在工作中,我们也从来没有在生产环境中做过这件事.我理解所提出的理论优势 - 最小化应用程序(安全性)的"表面",并提高性能.但我真的很好奇,如果你在现实生活中这样做(为你的客户提供真正的项目,而不是概念验证项目).这有什么缺点(可能性?).最重要的问题 - 值得吗?例如,性能增益是否可见?

另外,如果你认为这是一个很好的做法,请提出一些好的和一致的方法(或指向我的教程),你是如何做到这一过程的 - 你如何决定留下什么以及要删除什么.

例如,什么是ASP.NET MVC 3应用程序的最小但工作集,它使用自定义身份验证(基于会话,不依赖于Forms身份验证,Windows身份验证等),没有Web服务和类似功能?

编辑

我找到了这篇文章:http://madskristensen.net/post/Remove-default-HTTP-modules-in-ASPNET.aspx

在其中,Scott Guthrie说:

一般来说,使用这种方法可以获得一些非常小的性能胜利 - 尽管我可能建议不要这样做.原因是ASP.NET的某些功能(表单身份验证,角色,缓存等)当然会在您删除它们所依赖的模块后停止工作.试图找出发生这种情况的原因往往令人困惑.

但仍然没有测量,实践(我不相信"你以后可能会感到惊讶"的论点:)

asp.net asp.net-mvc web-config iis-7.5

14
推荐指数
2
解决办法
1902
查看次数

尝试以其访问权限禁止的方式访问套接字

我刚刚下载了C#SDK和ASP.NET MVC示例,将其修改为与4.2.1一起使用.(web config facebookSettings参数等),创建了我的Facebook应用程序并尝试运行它.点击Facebook登录按钮 - 确定,在facebook弹出窗口中输入凭据 - 确定,允许访问我的应用程序 - 好的,然后我收到此错误:

System.Net.Sockets.SocketException:尝试以其访问权限禁止的方式访问套接字66.220.146.47:443

var app = new FacebookApp();
if (app.Session == null)
{
   // The user isnt logged in to Facebook
   // send them to the home page
   return RedirectToAction("Index");
}

// Get the user info from the Graph API
dynamic me = app.Api("/me"); // EXCEPTION THROWN HERE
ViewData["FirstName"] = me.first_name;
ViewData["LastName"] = me.last_name;
Run Code Online (Sandbox Code Playgroud)

app物体是OK,我认为(含设置参数,可以与访问令牌会话对象和我的Facebook用户ID等)

我正在使用本地开发地址http://myappdev.local(设置为127.0.0.1hosts文件).我的Facebook应用程序设置中也设置了相同的地址,也是域名myappdev.local- 这可能是问题吗?我localhost:1234在一些教程中看到了一些例子.

c# facebook-c#-sdk

11
推荐指数
4
解决办法
5万
查看次数

诊断ANR的一般指南

包含ANR跟踪文件有很多问题,答案总是"哦,问题在你的主题76,修复你的http调用"或者其他东西:)但我找不到任何关于如何阅读这些跟踪的一般指南或教程,任何ANR的一步一步.有没有?我特别提出几个问题:

  1. 是否总能看到我在谷歌控制台中看到的真实ANR的线程痕迹问题?或者是否可能没有相关信息,如果我无法在本地重现ANR,我运气不好?

  2. 这些信息中包含哪些主题?我想应用程序进程中有所有线程,但其余的呢?它们在某种程度上与我相关吗?(例如我的一些线程正在等待的线程等)或者还有完全不相关的进程?

  3. 谷歌游戏控制台如何确定ANR发生的"地点" - 然后显示在ANR列表中,例如:

ANR keyDispatchingTimedOut

miesto:com.sample.myapp/myapp.activities.SplashActivity

因为SplashActivity在线程跟踪的提供文本中无处可见.

  1. 我知道我应该寻找WAIT状态下的线程来寻找潜在的死锁等等.线程在"等待自己"的情况怎么样?

"AsyncTask#1"prio = 5 tid = 15 WAIT | group ="main"sCount = 1 dsCount = 0 obj = 0x41bb50c0 self = 0x5529a868 | sysTid = 2448 nice = 0 sched = 0/0 cgrp = apps handle = 1429609576 | state = S schedstat =(18097077 39273309 41)utm = 1 stm = 0 core = 1 at java.lang.Object.wait(Native Method) - 等待tid = 15持有的<0x41bb5258>(java.lang.VMThread) (AsyncTask#1)

这总是好的,我可以假设这不是原因吗?那个情况怎么样,我在NATIVE中只有一堆线程(包括主线程)和WAIT中的一堆线程在这样等待自己?这怎么可能是ANR?

android android-anr-dialog

10
推荐指数
2
解决办法
2103
查看次数

应用内结算安全性 - 混淆密钥的处理方式是什么?

我正在使用Xamarin应用程序实现Google Play应用内结算,因此我查看了android和xamarin文档.他们都建议使用模糊的方法来混淆应用程序中的公钥:

http://developer.android.com/training/in-app-billing/preparing-iab-app.html

安全建议:强烈建议您不要对Google Play提供的确切公共许可证密钥字符串值进行硬编码.相反,您可以在运行时从子字符串构造整个公共许可证密钥字符串,或者在将其传递给构造函数之前从加密存储中检索它.这种方法使恶意第三方更难以修改APK文件中的公共许可证密钥字符串.

http://components.xamarin.com/gettingstarted/xamarin.inappbilling/true

虽然最佳做法是在远程服务器上而不是在设备上执行签名验证,但这可能并非总是可行.另一种技术是混淆您的Google Play公钥,并且永远不会将已组装的密钥存储在内存中.Xamarin.InAppBilling提供了Unify例程,可用于将您的Google Play公钥分成两个或多个部分,并使用一个或多个键/值对对这些部分进行模糊处理.此外,Xamarin.InAppBilling始终在内存中加密您的私钥.以下是使用Unify对私钥进行模糊处理的示例:

string value = Security.Unify (
new string[] { "X0X0-1c...", "+123+Jq...", "//w/2jANB...", "...Kl+/ID43" }, 
new int[] { 2, 3, 1, 0 }, 
new string[] {  "X0X0-1", "9V4XD", "+123+", "R9eGv", "//w/2", "MIIBI", "+/ID43", "9alu4"      })
Run Code Online (Sandbox Code Playgroud)

但无处解释,这里的交易是什么.为什么有人想看到这把钥匙?如何看到/替换我的APK中的密钥会有什么好处?这里有什么可能的"攻击"?谢谢.

android in-app-purchase in-app-billing xamarin

7
推荐指数
1
解决办法
1668
查看次数

如何回收/处理主题使用的位图

我的Xamarin.Android应用程序使用简单的启动画面技术将主题应用于Splash活动:

<resources>
 <style name="SplashTheme" parent="@android:style/Theme.NoTitleBar">
  <item name="android:background">@drawable/bluebg</item>
 </style>
</resources>
Run Code Online (Sandbox Code Playgroud)

[Activity(Label = "Splushy Splushy", MainLauncher = true, Theme = "@style/SplashTheme")]
public class SplashActivity : Activity
{ ... }
Run Code Online (Sandbox Code Playgroud)

但似乎在启动画面上使用的图像(PNG,80 KB)在我的应用程序运行的整个过程中,内存中的内存大小为12 MB(有和没有启动的内存使用之间的差异)(另一项活动,永远不会回头)自然地飞溅屏幕).

有没有办法摆脱活动主题使用的资源,所以我的内存占用不会变得不必要的大?谢谢.

android xamarin.android

5
推荐指数
1
解决办法
396
查看次数

SQL Azure - 登录后阶段过去的超时时间

我有azure云服务 - 2个Web实例,每天服务大约500,000个请求.使用Azure业务数据库.有一个问题 - 有时(平均每天一次,但不是在同一时间)有2-3分钟的间隔,而我无法查询数据库,错误信息是这样的:

System.Data.Entity.Core.EntityException: The underlying provider failed on Open. ---> System.Data.SqlClient.SqlException: Connection Timeout Expired.  The timeout period elapsed during the post-login phase.  The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections.  The duration spent while attempting to connect to this server was - [Pre-Login] initialization=1; handshake=12; [Login] initialization=0; authentication=0; [Post-Login] complete=14004;  ---> System.ComponentModel.Win32Exception: The wait operation …
Run Code Online (Sandbox Code Playgroud)

sql-server entity-framework azure azure-sql-database

5
推荐指数
1
解决办法
2541
查看次数

项目升级到SDK 2.6后有很多架构警告

将我的云项目升级到Azure SDK 2.6之后.(通过项目属性窗口中的按钮),一切正常,但我得到了*.cscfg文件的数百个这样的警告:

The complexType 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration:AccessControlElement' has already been declared.
The complexType 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration:AddressAssignmentsElement' has already been declared.
The complexType 'http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration:Certificate' has already been declared.
Run Code Online (Sandbox Code Playgroud)

等等更多元素.

已经尝试过Clean,Rebuild,close-open VS ......但没有成功.它不会影响项目的功能,但让错误列表充满这些东西真的很烦人.

知道什么是错的,怎么解决?

azure visual-studio-2013

5
推荐指数
1
解决办法
683
查看次数

如何从CKEditor中删除所选文本?

我正在开发一个我正在使用CKEditor的应用程序.我提供了一个名为clear的按钮.每当用户选择文本的某些部分并单击清除按钮时,只会删除所选文本.

我在我的应用程序中使用了以下代码,但每当用户单击清除按钮时,不仅选择了文本,而且整个内容都被删除.

 function clear_onclick() {
        CKEDITOR.instances.message.setData('');
 }
Run Code Online (Sandbox Code Playgroud)

如何在单击ASP.Net MVC2中的清除按钮时从CKEditor中清除所选文本?

javascript ckeditor

2
推荐指数
1
解决办法
4271
查看次数