在使用CryptoObfuscator或RedGate SmartAssembly混淆Asp程序集时,我有一个问题:
当您使用这些工具之一混淆程序集时,它们似乎会重命名类的属性,对吗?
因此,我认为由于这个操作,我们将无法访问在序列化期间来自服务器的一些JSON格式的值(我的意思是,由于重命名了JS中的JSON对象,所以不能正确解析JSON对象)
如果这是真的,那么我们如何防止JS中的parseJSON操作松动呢?
让我提供更多细节:
考虑一下这个类结构。
public class MyClass
{
public string FName{get;set;}
. . .
}
//SampleController :
public JsonResult GetJson()
{
return Json(new MyClass{FName = "Alex"});
}现在在ClientSide中:
$.ajax({
url: "/Sample/GetJson",
context: document.body
}).success(function(data) {
//this is my problem : can I access to FName or Not?
var fname = jQuery.parseJSON(data).FName;
});发布于 2015-11-23 06:45:52
基本上,混淆器不改变 return value's Property's names。
但如果某个混混者这么做..。您只需在ajax调用中使用以下方法即可完成此任务:
$.ajax({
url: "/Sample/GetJson",
dataType: "json"
success: function(data) {
var transformedData = {fname:arguments[0], somethingElse:arguments[1]};
//or
var fname = arguments[0];
//do the rest here...
}
});您还可以在“DoNotObfuscate”中使用智能装配属性,这样可以防止json结果被混淆(在服务器端)。
另外,对于其他混淆器,应该有一些(其他/相同的)策略。
我个人使用CryptoObfuscator,它有一些选项可以防止您想要的(什么/什么地方)被混淆。
https://stackoverflow.com/questions/33051451
复制相似问题