有没有办法在不在 web.config 中指定的情况下为 Azure 网站指定机器密钥?
Is there a way to specify a machine key for Azure Websites without specifying it in the web.config?
我想在 Azure 上为我的网站 运行 指定一个自定义机器密钥,这样我就可以在暂存和生产之间切换,并保持两者之间的环境一致,而无需用户 "logged out" 每当我进行交换(因为否则机器密钥会更改并且用户的 cookie 无法再解密)。我以前一直在 web.config 文件中设置它,但我真的不喜欢将这个值存储在源代码管理中(我不断地向服务器部署更改)。可以在 Azure 门户中指定连接字符串以避免此问题。是否有针对机器密钥的解决方案?
在您的 web.config 中引用机器密钥部分的外部配置文件:
<system.web >
<machineKey configSource="mkey.config"/>
</system.web>
像这样创建一个文件mkey.config:
<machineKey
validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F"
decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4" />
使用 ftp 而不是网络部署将 mkey.config 文件上传到 Azure 网站。
我不是 100% 确定我理解你的问题是正确的,所以我会回答两种可能的解释。
解释 #1: 在交换产品和阶段之前,您的用户在访问(旧)产品时获得密钥 A。当您进行交换时,您希望用户在点击新产品时继续获得密钥 A。
使用应用设置。您可以使用 Portal 或 Powershell 设置它们。这些是您可以设置的键值字符串,它们可以作为环境变量从您的站点访问。当您交换 prod 和 stage slots 时,旧 prod 上的应用程序设置全部移动到新 prod,因此您的客户将看到相同的值。
解释 #2: 在交换产品和阶段之前,您的用户在访问(旧)产品时获得密钥 A,而在访问(旧)产品时获得密钥 B访问了旧的暂存槽。当您进行交换时,您希望用户在点击新产品时获得密钥 B,并在访问新暂存槽时获得密钥 A
使用置顶设置。这些是您为网站设置的应用程序设置,但您将它们配置为保留在它们所在的网站上,这意味着当您交换网站时,您也会交换设置。您可以使用以下 powershell 命令使应用设置具有粘性。
Set-AzureWebsite -Name mysite -SlotStickyAppSettingNames @("myslot", "myslot2")
此 link 中的完整详细信息:http://blog.amitapple.com/post/2014/11/azure-websites-slots/#.VMftXHl0waU
我想在 Azure 上为我的网站 运行 指定一个自定义机器密钥,这样我就可以在暂存和生产之间切换,并保持两者之间的环境一致,而无需用户 "logged out" 每当我进行交换(因为否则机器密钥会更改并且用户的 cookie 无法再解密)。我以前一直在 web.config 文件中设置它,但我真的不喜欢将这个值存储在源代码管理中(我不断地向服务器部署更改)。可以在 Azure 门户中指定连接字符串以避免此问题。是否有针对机器密钥的解决方案?
在您的 web.config 中引用机器密钥部分的外部配置文件:
<system.web >
<machineKey configSource="mkey.config"/>
</system.web>
像这样创建一个文件mkey.config:
<machineKey
validationKey="32E35872597989D14CC1D5D9F5B1E94238D0EE32CF10AA2D2059533DF6035F4F"
decryptionKey="B179091DBB2389B996A526DE8BCD7ACFDBCAB04EF1D085481C61496F693DF5F4" />
使用 ftp 而不是网络部署将 mkey.config 文件上传到 Azure 网站。
我不是 100% 确定我理解你的问题是正确的,所以我会回答两种可能的解释。
解释 #1: 在交换产品和阶段之前,您的用户在访问(旧)产品时获得密钥 A。当您进行交换时,您希望用户在点击新产品时继续获得密钥 A。
使用应用设置。您可以使用 Portal 或 Powershell 设置它们。这些是您可以设置的键值字符串,它们可以作为环境变量从您的站点访问。当您交换 prod 和 stage slots 时,旧 prod 上的应用程序设置全部移动到新 prod,因此您的客户将看到相同的值。
解释 #2: 在交换产品和阶段之前,您的用户在访问(旧)产品时获得密钥 A,而在访问(旧)产品时获得密钥 B访问了旧的暂存槽。当您进行交换时,您希望用户在点击新产品时获得密钥 B,并在访问新暂存槽时获得密钥 A
使用置顶设置。这些是您为网站设置的应用程序设置,但您将它们配置为保留在它们所在的网站上,这意味着当您交换网站时,您也会交换设置。您可以使用以下 powershell 命令使应用设置具有粘性。
Set-AzureWebsite -Name mysite -SlotStickyAppSettingNames @("myslot", "myslot2")
此 link 中的完整详细信息:http://blog.amitapple.com/post/2014/11/azure-websites-slots/#.VMftXHl0waU