日期:2014-05-18  浏览次数:20401 次

B/S结构下C#操作注册表
问题如下:

我在一个类中读取服务器的CPU编号,再把这个CPU编号保存注册表中,
只要登录系统时就从注册表中读CPU编号与实际上CPU编号作判断是否相同。如果相同就让登录,否则不让登录。
在本机作调试时是能正常运行。但打包以后,部署在服务器上就报表不允许操作注册表权限

请大家帮帮忙,
怎么解决?
谢谢

------解决方案--------------------
使用impersonate,具体见微软的帮助文档。你可以使用部分代码模拟。如果出现拒绝访问的话,在webform的第一行加入 aspcompact= "true "
------解决方案--------------------
权限问题啊,错误信息提示的很清楚了啊。一般访问通过匿名访问,如果匿名访问的用户,给开注册表权限,那就存在极大的安全隐患了
------解决方案--------------------
很正常。

你需要请服务器提供商将asp.net进程的权限提高到最高。

但是这一般来说是无礼要求。服务商把一台服务器租给很多网站,如果小网站程序能够偷取服务器上其它网站的资料,甚至还有更多的权限来管理整个服务器,我想这个服务商是服务水平极低的,应该退款、倒闭。因此反过来说,你要求的很不合适。
------解决方案--------------------
你的设计只能工作在自己拥有的服务器上。

在设计软件之前,就要搞清楚软件的运行环境、网络状况,应该有多种解决方案。
------解决方案--------------------
为什么一定要保存注册表中?保存在文件中不是更容易实现?试图提升IIS进程系统权限的操作是极其危险的...