关于应用程序池标识影响rsa解密

最近开发的项目用到了带有cer证书的RSA加密解密。程序在本机测试一直很好,可是部署到服务器上却报了错。调试了一个晚上,没有任何进展。。。。。第二天早上来,继续调试,仍然无果。直到下午,一次偶然的操作,发现了有可能是应用程序池的问题,然后果断换了一个应用程序池试了下,结果竟然对了。。。于是开始检查前后连个应用程序池的区别,发现原因在于应用程序池的标识上。于是将原有的应用程序池标识ApplicationPoolIdentify改为LocalSystem,问题解决。后来上网查询资料发现可能是权限问题。

  

 

IIS有应用程序池有四种标识LocalService,LocalSystem,NetWorkService,ApplicationPoolIdentify。

1.Local   System (本地系统): 该账户具有相当高的权限。 首先,该账户也隶属于本地Administrators   用户组,因此所有本地Administrators用户能够进行的操作该账户也能够进行, 其次,该账户还能够控制文件的权限(NTFS   文件系统)和注册表权限,甚至占据所有者权限来取得访问资格。 如果机器处于域中,那么运行于Local   System   账户下的服务还可以使用机器账户在同一个森林中得到其他机器的自动认证, 最后一点就是运行于Local   System   下的进程能够使用空会话(null   session)去访问网络资源。 而且,其他一些Windows 用户模式下的核心组件也运行于该账户下,例如system32\Smss.exe 等。 需要注意的是,运行于此账户下的进程使用的是HKEY_USERS\.Default 账户配置,因此它不能够访问其他账户的配置。

2.Network   Service(网路服务): 该账户也是为了使用机器账户在网络上的其他计算机上认证而设定的。但是他没有Local   System   那么多的权限。 它能够以计算机的名义访问网络资源。以这个账户运行的服务会根据实际环境把访问凭据提交给远程的计算机。 运行于此账户下的进程使用网络账户配置文件HKEY_USERS\S-1-5-20和Documents and Settings\NetworkService。

3.Local   Service(本地服务): Local   Service账户是预设的拥有最小权限的本地账户,并在网络凭证中具有匿名的身份。 运行于此账户下的进程和运行于Network   Service   账户下的进程的区别 在于运行于Local   Service   账户下的进程只能访问允许匿名访问的网络资源。 运行于Local   Service   下的账户使用的配置文件是HKU\S-1-5-19   和Documents   and   Settings\LocalService。

4.ApplicationPoolIdentity"帐号是系统动态创建的“虚拟”帐号(说它是虚拟的,是因为在用户管理里看不到该用户或用户组,在命令行下输入net user也无法显示,但该帐号又是确实存在的)

 

后来调试发现,应用程序池标识在ApplicationPoolIdentity下,更改应用程序池的高级设置里的模型里的加载用户配置文件改为true也可以解决问题。

转载于:https://my.oschina.net/u/3518053/blog/1031364

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值