【问题标题】:Is it possible to get an access to anonymous user identity in ASP.NET Core running in IIS?是否可以访问在 IIS 中运行的 ASP.NET Core 中的匿名用户身份?
【发布时间】:2017-09-07 04:31:30
【问题描述】:

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

对于 ASP.NET Core 应用程序有什么方法可以做同样的事情吗?根据我对核心执行模型的理解,这是不可能的,因为 IIS 只是充当代理。我说的对吗?

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

【问题讨论】:

    标签: security iis asp.net-core identity anonymous


    【解决方案1】:

    不喜欢回答自己的问题,但主题是可能的。您可以从 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 的帐户下运行您的应用程序),并且您需要将站点名称保留在配置中的某个位置,但它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-19
      • 2017-07-03
      • 2011-03-18
      • 1970-01-01
      相关资源
      最近更新 更多