之前用于登录配置文件的帐户已被删除,该配置文件允许我们的网站运行。我对 IIS 一无所知,正在寻找一些有关如何像以前的用户一样加密密码的见解。我相信这是加密类型<add name="IISWASOnlyRsaProvider..."
。后来在代码中,我提供了自己的用户名和密码,允许它再次运行:
virtualDirectory path="/" physicalPath="C:\path\to" userName="" password="" />
<virtualDirectory path="/Pictures" physicalPath="C:\Shares\Public\pictures" userName="" password="" />
以前的密码以 开头enc:AesProvider
,后面跟着加密密码。有没有办法生成我自己的加密密码并放在上述位置?
答案1
在IIS管理器中打开虚拟目录,点击Advanced Settings...
右侧的操作窗格,在入口处Physical Path Credentials
点击...
按钮,设置用户和密码,会保存在配置文件中。
请注意,虽然密码本身的加密很强,但机器上的每个管理员都可以很容易地查看它。
foo
根目录中的vDir 示例Default Web Site
:
Get-WebConfiguration -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.applicationHost/sites/site[@name='Default Web Site']/application[@Path='/']/virtualDirectory[@path='/foo']" | select username, password
这使用与 IIS 从配置中获取用户名和密码相同的 API。虽然在配置中密码是加密的,但通过 API 读取时,密码会以明文形式显示。
答案2
您可以使用 aspnet_regiis.exe 命令加密配置文件所需的部分,并授予需要读取它的所需帐户的访问权限。
答案3
作为替代方案Peter 使用 Powershell 的方法,您也可以使用appcmd
来找回密码
%systemroot%\system32\inetsrv\APPCMD list vdirs mySite/Pictures /text:password
或设置新的
%systemroot%\system32\inetsrv\APPCMD set vdir mySite/Pictures /password:"hunter2"
这可能不适用于某些加密方法。这取决于哪些帐户有权访问密钥。