Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.NET中,代码在哪个凭据下运行?_Asp.net_.net_Security_Authentication_Credentials - Fatal编程技术网

在ASP.NET中,代码在哪个凭据下运行?

在ASP.NET中,代码在哪个凭据下运行?,asp.net,.net,security,authentication,credentials,Asp.net,.net,Security,Authentication,Credentials,1) 我想知道,假设我们在VS中以调试模式使用ASP.NET web应用程序,那么代码在哪个用户帐户下运行 2) 我还想知道,假设我们将其发布到IIS,然后将其设置为使用WBA/FBA,然后,登录用户的用户名/密码用于对ASP.NET站点的用户进行身份验证,但是,代码(SQL查询等)在apppool帐户的凭据下运行。此外,哪个凭据用于访问服务器上的资源(如文件)?您对此有何看法? 1) 我想知道,假设我们在中使用ASP.NET web应用程序 那么,在VS中的调试模式下,代码在哪个用户帐户下运行

1) 我想知道,假设我们在VS中以调试模式使用ASP.NET web应用程序,那么代码在哪个用户帐户下运行

2) 我还想知道,假设我们将其发布到IIS,然后将其设置为使用WBA/FBA,然后,登录用户的用户名/密码用于对ASP.NET站点的用户进行身份验证,但是,代码(SQL查询等)在apppool帐户的凭据下运行。此外,哪个凭据用于访问服务器上的资源(如文件)?您对此有何看法?

1) 我想知道,假设我们在中使用ASP.NET web应用程序 那么,在VS中的调试模式下,代码在哪个用户帐户下运行

这取决于主机。VS提供了4种托管和调试web应用程序的方法:VS开发服务器(VS 2012)、IIS Express、本地IIS和自定义主机(VS 2013)。Devs服务器通常在您的管理员帐户下运行,可能不适合测试安全性。直接使用IIS作为开发web服务器可以让您在更接近IIS生产web服务器的环境中工作

这是在Web项目属性的“Web”选项卡中配置的。

2) 我还想知道,假设我们将此发布到IIS,然后, 将其设置为使用WBA/FBA,然后输入登录的用户名/密码 用户用于对ASP.NET站点的用户进行身份验证,但是 代码在apppool帐户的凭据下运行。您对此有何看法? 这一点

不太清楚,但我认为你对IIS安全性的理解可能不正确。每个网站只有一个在特定帐户下运行的应用程序池(默认为apppool帐户,但可以是网络服务或本地系统)。当用户登录时,此过程中绝对没有任何更改。用户只是使用身份验证提供程序进行连接:Windows authentication或Forms authentication是两种常见的提供程序。用户标识保存在http上下文中,允许您稍后使用授权规则。因此,每个代码块总是在同一个帐户下运行(除非启用委派,但这是另一回事)


我强烈建议您阅读asp.net安全性。

应用程序池标识用于此目的。我已用斜体更新了我的问题,请检查。您的意思是说,除非您使用委派(提升特权),apppool帐户或loggedin用户帐户用于运行代码块?应用程序池始终在同一帐户下运行。例如,如果您尝试访问web服务器上的文件,它将始终是此帐户。这就是为什么有时必须将应用程序池标识设置为提升用户才能访问文件或启动新进程。用户身份(一旦登录)是非常不同的。它由各种属性和asp.net授权规则使用。“这就是为什么有时必须将应用程序池标识设置为提升用户的原因”。解决此问题的另一个解决方案是为应用程序池帐户用户授予文件的写入权限。对吗?