.net怎么看后台保存数据代码在哪里?

网站后台现在需要发布韩文的信息,
在后台添加后台,出现了乱码,

clipboard.png

数据库中也是乱码:
clipboard.png

.net中是这样写的:

添加:

clipboard.png

提交:
clipboard.png

我现在找到这个提交的方法,修改一下保存到数据库中的方法,但是找不到这个方法,
全局搜索也试了,还是找不到。
请问一下.net中,提交事件或者保存到数据中写在什么地方?或者可以从哪里查找。(页面引用的JS我也找过了,没有)

目录结构:

clipboard.png

阅读 4.6k
6 个回答

鼠标右键“查看代码”没有?

没有.aspx.cs文件,说明你这个是部署版本的程序

这是个asp.net webform程序,每个xxx.aspx页面,会对应一个xxx.aspx.cs文件。
如果没有找到,你拿到的代码是编译后发布的代码。

首先你应该检查一下 ProductName 字段的数据类型,看看是不是 NVARCHAR

从已编译的 Web Form App 里查找代码的方法(假设你感兴趣的代码所在的页面是 A.aspx):

你可以到网站的 bin 目录里,查找名为 A.aspx.hashcode.compiled 的文件,其中 hashcode 是一个疑似哈希值的字母组合,比如 b34j6u4,用文本编辑器打开这个文件,会看到如下内容(例):

<?xml version="1.0" encoding="utf-8"?>
<preserve resultType="3" virtualPath="/Modules/A.aspx" hash="ee77ab3xb" filehash="b77dc770c94a2b86" flags="110000" assembly="App_Web_hkeqcmvx" type="ASP.modules_admin_A_aspx">
    <filedeps>
        <filedep name="/common/HyperLink.ascx" />
        <filedep name="/common/HyperLink.ascx.cs" />
        <filedep name="/masterpage/Admin.master" />
        <filedep name="/masterpage/Admin.master.cs" />
        <filedep name="/Modules/A.aspx" />
        <filedep name="/Modules/A.vb" />
    </filedeps>
</preserve>

注意 preserve 元素的 assembly 属性,它的值就是你要找包含 A 页面后台代码的 dll 的名字。根据这个名字在 bin 目录找到 dll,然后用 ILSpy之类的工具就可以看到它的反编译出来的源代码了。
这个方法对于用户控件同样适用。

如果没有强签名的话,编译后的代码也是有机会反编译为 IL 代码,修改 IL 代码然后再重新编译成 assembly. 同时Web Form 相关的预编译的文件名中的哈希值等都需要对应修改。我没有实际做过,不过理论上是有可能的。

aspx这个是ASP.NET的WebForm框架的页面,它一般是和.aspx.cs、.aspx.designer.cs一同出现的,如果,项目里只有aspx文件,说明这个项目是编译过的,这个就没办法更改了,只能用ILSpy这种反编译工具反编译dll查看源码了

可能是原来的锁定了数据编码,比如gbk之类的,造成这样的问题。
如果代码是编译且签名了的,你只能求助原来的开发者了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题