当前位置:  开发笔记 > 编程语言 > 正文

如何找出我的ASP.NET代码在哪个帐户下运行?

如何解决《如何找出我的ASP.NET代码在哪个帐户下运行?》经验,为你挑选了3个好方法。

在调试模式下运行时,我收到"访问路径被拒绝"错误消息.我尝试授予{MACHINENAME}\ASPNET和NETWORK SERVICE权限,但这没有任何区别.我也试过使用管理员帐户,这也没有区别.那么如何准确确定正在使用哪个帐户?



1> Adam..:

用于vb.net的C#代码答案

var user = System.Security.Principal.WindowsIdentity.GetCurrent().User;
var userName = user.Translate(typeof (System.Security.Principal.NTAccount));



2> mdb..:

要找出您的应用程序在任何给定时间运行的NT帐户,请执行以下操作(在VB.NET中):

    Dim User = System.Security.Principal.WindowsIdentity.GetCurrent.User
    Dim UserName = User.Translate(GetType(System.Security.Principal.NTAccount)).Value

使用ASP.NET时,此帐户将匹配使用IIS管理器配置的应用程序池的标识.请注意,匿名IIS用户与ASP.NET请求的关系不大.



3> splattne..:

你可以使用这段代码:

C#

Response.Write("Windows Account which runs ASP.NET is: " 
   + Environment.Username);

VB.NET

Response.Write("Windows Account which runs ASP.NET is: " _
   & Environment.Username)

如果您在PC上的Visual Studio中运行应用程序(localhost),您将获得您的用户名.如果在IIS上部署ASP.NET Web应用程序,则可能会获得NETWORK SERVICE帐户,因为这是运行IIS 6.0的默认用户(Windows Server 2000的IIS 5.0上的ASPNET).

Environment.UserName返回线程当前登录的用户.Page.User返回ASP.NET通过身份验证验证的名称,在大多数情况下,此用户独立于运行当前线程的Windows登录.对于匿名请求Page.User为空,而Environment.User为NETWORK SERVICE.

正如mdb在对此答案的注释中正确指出的那样,Environment.Username将只返回USERNAME环境变量,该变量在进程创建时设置,并且在模拟等情况下不会更新.

推荐阅读
mobiledu2402851203
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有