作者CYBASTER (复雠の业火)
看板C_Sharp
标题[问题] ASP.NET读取Registry Key权限相关问题
时间Tue Aug 4 16:00:01 2009
版上各位先进大大好:
小弟最近开发一个ASP.Net网站,该网站需要呼叫一个外部程式,
(Google DeskTop,我需要借重它的搜寻功能)
而呼叫这个外部程式时需要读取到本机的Registry来取得一个类似金钥的东西,
它不能写死,因为每个使用者的这个数值都可能是不一样的。
总之,Rigistry的位置在:
HKEY_CURRENT_USER\Software\Google\Google Desktop\API\search_url
下面这个写法在console主控台已经能顺利运作成功:
RegistryKey rkHKLM = Registry.CurrentUser;//在此先决定基础分类
string fullQueryPrefix =
rkHKLM.OpenSubKey("Software\\Google\\Google Desktop\\API",
true).GetValue("search_url").ToString();
可是,当我将它写在ASPX的code里时,假如我直接用vs2008去模拟网站的运作结果,
可以得到令人满意的效果,可是真的发布网站到IIS下头的时候,
string fullQueryPrefix =
rkHKLM.OpenSubKey("Software\\Google\\Google Desktop\\API",
true).GetValue("search_url").ToString();
这一行不论怎麽弄都发生Null Reference Exception,
目前小弟的猜测是因为这个registry key随使用者不同,
而asp.net网站的预设使用者和本机的administrator不同,
甚至权限可能低到不能读取registry,如果真是如此的话,
不知有没有办法可以让我的asp.net使用者以管理者的预设权限进入,
让它可以存取本机的应用程式及登录档呢?
麻烦各位高手解惑了!感激不尽! M(_ _)M
--
灰心丧志的人,如泄了气的皮球,一蹶不振;
消极颓唐的人,如泄了精的鸡巴,无望再举。
而,打个手枪没有目标的痛苦,就是现实世界的残酷。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.137.97.207
※ 编辑: CYBASTER 来自: 114.137.97.207 (08/04 16:02)