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这个帐号;
感谢开心指正
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix