相关疑难解决方法(0)

IIS7权限概述 - ApplicationPoolIdentity

我们最近升级到IIS7作为核心Web服务器,我需要在权限方面进行概述.以前,当需要写入文件系统时,我会给AppPool用户(网络服务)访问目录或文件.

在IIS7中,我看到,默认情况下,AppPool用户设置为ApplicationPoolIdentity.因此,当我检查任务管理器时,我看到一个名为"WebSite.com"的用户帐户正在运行IIS进程('Website.com'是IIS中网站的名称)

但是,如果我尝试使用该帐户授予权限,则此用户帐户不存在.那么,我如何确定哪个用户也可以授予权限呢?

编辑================================================= =============================

有关屏幕截图中的问题,请参阅下文.我们的网站(www.silverchip.co.uk)使用用户名SilverChip.co.uk运行.但是当我添加提交时,这个用户确实存在!

在此输入图像描述

=================================请参阅AppPool图像

在此输入图像描述

permissions iis-7

342
推荐指数
6
解决办法
32万
查看次数

使用PowerShell授予IIS 7.5应用程序池读取证书私钥的权限

我四处搜索,找不到很多信息,基本上我有Windows 2008 R2,我创建了PowerShell脚本,将PFX文件加载到Local Machine的证书存储区.

现在,我需要授予应用程序池的权限,以便使用PowerShell读取证书的私钥.

在Windows 2003的旧方式中,我只需要将实际文件放在C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys\文件夹中,但看起来Win 2008使用的是另一个文件夹.

有人有解决方案吗?

- 更新我的代码版本 -

function Grant-CertificatePermissions([string]$certSubject,[string]$user,[string]$permissionType,[string]$permission = $args[3])
{
    $getCert = Get-LocalMachineCertificate $certSubject
    $keypath = Get-CertificateStorePath
    $certHash = $getCert.PrivateKey.CspKeyContainerInfo.UniqueKeyContainerName
    $certFullPath = $keypath+$certHash
    $certAcl = Get-Acl -Path $certFullPath

    try
    {
        $accessRule=new-object System.Security.AccessControl.FileSystemAccessRule $user, $permissionType, $permission
        $certAcl.AddAccessRule($accessRule)
    }
    catch [System.Exception]
    {
        throw "Invalid User Id Or Permission"
    }
    Set-Acl $certFullPath $certAcl
}

function Get-LocalMachineCertificate([string]$subject, [string]$certificateStoreLocation, [string]$certificateStoreName)
{
    $getCert = Get-ChildItem -Recurse Cert:\$certificateStoreLocation\$certificateStoreName | Where-Object {$_.Subject -eq $subject}

    if(!$getCert)
    {
        throw "Certificate Not …
Run Code Online (Sandbox Code Playgroud)

powershell certificate iis-7.5

5
推荐指数
1
解决办法
5707
查看次数

由 appsettings.json 标识的 Kestrel Https 证书仅在以管理员模式运行时发现

我正在使用 appsettings.json 在 .netcore3.1 应用程序中配置 Kestrel。这是 appsettings.json 中的相关部分

    "Kestrel": {
    "Certificates": {
      "Default": {
        "Subject": "certificate name",
        "Store": "MY",
        "Location": "LocalMachine",
        "AllowInvalid": true
      }
    }
  },
  "AllowedHosts": "*",
  "Urls": "http://*:5010;https://*:5011"
Run Code Online (Sandbox Code Playgroud)

如果我启动应用程序,它会出现在两个端口上。但是,通过 HTTPS 访问它会将此异常转储到我的应用程序的控制台

Microsoft.AspNetCore.Server.Kestrel[0] 处理 0HLT41KHBJ13T 时未处理的异常。System.ComponentModel.Win32Exception (0x8009030D): System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc) 无法识别提供给包的凭据

但是,如果我以管理权限启动应用程序,它就可以工作。因此,证书很好(它具有所需的私钥),但仍然无法正常工作。只是为了好玩,我将证书导入到 LocalUser 存储中,即使没有管理员权限,应用程序也绝对可以访问该存储,但没有任何乐趣。

如果没有以管理权限运行,有什么想法会导致此失败?您可以看到证书位于证书存储中,而不是文件系统中,这排除了文件权限问题。

https kestrel-http-server asp.net-core

5
推荐指数
1
解决办法
1564
查看次数

用户帐户无权访问客户端证书的私钥

我有一个场景,我在代码中使用证书来触发操作。将证书导入到本地计算机并运行 C# 代码后,它会引发私钥访问问题,并显示错误“用户帐户无法访问客户端证书的私钥”。任何可以解决问题或可以让我调试问题的指针?

我做了什么:运行 - certlm.msc 个人 - 证书 - 所有任务 - 导入 - 本地计算机 - 浏览我的 .cer 文件

我试图解决(但无法解决):运行 - certlm.msc 个人 - 证书 - 我的证书 - 右键单击​​ - 所有任务 - 管理私钥 - 添加具有完全控制权的“网络服务”。我尝试添加我的邮件 ID 或用户名,但不允许添加。

错误:System.InvalidOperationException:“用户帐户无权访问客户端证书的私钥”

配置:

<system.serviceModel>
        <behaviors>
            <endpointBehaviors>
                <behavior name="ClientBehavior">
                    <clientCredentials>
                        <clientCertificate findValue="xxxx-correct thumbprint-xxxxxxx" storeLocation="LocalMachine" storeName="My" x509FindType="FindByThumbprint" />  
                    </clientCredentials>
                </behavior>
            </endpointBehaviors>
        </behaviors>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

c# mmc ssl-certificate x509certificate

5
推荐指数
2
解决办法
2702
查看次数

如何从powershell授予私钥的权限

我正在尝试从powershell脚本中找到一种授予私钥权限的方法.证书存储在CNG中.欢迎所有想法.

powershell cng

4
推荐指数
1
解决办法
4624
查看次数