Asp.net程序的身份

ASP.NET程序会固定的模拟ASP_NET这个用户的身份来运行,这来源于ASP.NET的程序的一种要求,她需要像服务程序一样不需要登陆就能运行。当然也有安全性方面的要求
但,这也带来了一些问题。
比如:非常经典的一个关于ASP.NET的数据访问的问题。
“为什么我在WINFORM中运行的很好的代码,在ASP.NET中就不行了...”然后是一段没有错误的访问数据库的代码。
这段访问数据库代码本身没有问题,有问题的是她使用了WINDOWS集成身份验证。在WIN程序中这样做会使用当前登陆的用户来访问数据库,但在ASP.NET中就是使用的ASP_NET这个用户。所以出错。解决很简单就是在SQL中添加ASP_NET用户的登陆。

我今天遇到的问题与此相关。
我需要在页面中列出服务器上所有安装的打印机,让用户挑选再在服务器上打印。开始我发现我的代码不能列出网络打印机。后来我是用WMI效果一样。再后来(大约折腾了一个多小时),突然想到用户权限。
马上新建一个用户,切换到该用户,果然发现看不到我网络打印机。看来网络打印机是与用户相关的,属于个性化设置。
写个WIN程序看看,证实我的猜测,相同的代码就能发现我的网络打印机。
现在的问题,我的ASP.NET程序如何使用网络打印机呢,我肯定不能用ASP.NET这个用户登陆来给她添加打印机啊。

修正:
1.Windows XP中使用的是ASPNET这个帐号,不是ASP_NET;
2.Windows Server 2003中使用的是Network Service这个帐号;
    感谢开心指正

posted on 2004-08-24 15:58  Meyer  阅读(3013)  评论(8编辑  收藏  举报

导航