Security 是否可以在IIS中运行的ASP.NET Core中访问匿名用户标识?

Security 是否可以在IIS中运行的ASP.NET Core中访问匿名用户标识?,security,iis,asp.net-core,identity,anonymous,Security,Iis,Asp.net Core,Identity,Anonymous,使用asp.net vPrev,我们能够分离应用程序池帐户和匿名访问的访问帐户(“匿名用户身份”,IUSR为默认值)。这对保护应用程序非常有帮助:您可以确保不会为匿名用户提供高级别访问,即使应用程序池帐户具有高权限 对于ASP.NET核心应用程序,是否有同样的方法?从我对core执行模型的理解来看,这是不可能的,因为IIS只是作为代理。我说得对吗 也许有一些方法可以做到这一点,但用另一种方法?主要目标是能够在应用程序池和匿名上下文之间切换上下文。举个简单的例子:当应用程序启动时,我们可以使用应用

使用asp.net vPrev,我们能够分离应用程序池帐户和匿名访问的访问帐户(“匿名用户身份”,IUSR为默认值)。这对保护应用程序非常有帮助:您可以确保不会为匿名用户提供高级别访问,即使应用程序池帐户具有高权限

对于ASP.NET核心应用程序,是否有同样的方法?从我对core执行模型的理解来看,这是不可能的,因为IIS只是作为代理。我说得对吗


也许有一些方法可以做到这一点,但用另一种方法?主要目标是能够在应用程序池和匿名上下文之间切换上下文。举个简单的例子:当应用程序启动时,我们可以使用应用程序池帐户读\写\做任何事情,但在请求上下文中,我们将使用匿名用户身份进行操作。

不喜欢回答自己的问题,但主题是可能的。您可以从IIS SDK获取匿名用户上下文:

using Microsoft.Web.Administration // from Microsoft.Web.Administration.dll, nuget microsoft.web.administration
// ....
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", siteName);
string userName = (string)anonymousAuthenticationSection["userName"];
string pwd = (string)anonymousAuthenticationSection["password"];

当然,这并不是真正安全的(因为你必须在有权访问IIS的帐户下运行你的应用程序),你需要将站点名称保存在配置中的某个位置,但它可以工作。

不喜欢回答自己的问题,但主题是可能的。您可以从IIS SDK获取匿名用户上下文:

using Microsoft.Web.Administration // from Microsoft.Web.Administration.dll, nuget microsoft.web.administration
// ....
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection anonymousAuthenticationSection = config.GetSection("system.webServer/security/authentication/anonymousAuthentication", siteName);
string userName = (string)anonymousAuthenticationSection["userName"];
string pwd = (string)anonymousAuthenticationSection["password"];
当然,这并不是真正安全的(你必须在有权访问IIS的帐户下运行你的应用程序),你需要将站点名称保存在配置中的某个位置,但它可以工作