gpt4 book ai didi

.net - 受密码保护的 .NET ClickOnce 部署?

转载 作者:行者123 更新时间:2023-12-04 02:01:04 25 4
gpt4 key购买 nike

我该怎么办 使用密码保护 ClickOnce 部署的应用程序 ?我是否必须更改 Web 的 IIS 设置,还是有办法以编程方式执行此操作?我使用的是 Visual Studio 2005 (.NET 2.0)。

如果我必须使用 Web 凭据,是否仍然可以自动更新应用程序?

如果您能提供一些用于管理 IIS 的示例代码或详细说明,那就太好了。

谢谢!

最佳答案

我自己在这篇 MSDN 文章中找到了一个可能的解决方案:ClickOnce Deployment and Security .

ASP.NET 基于表单的身份验证

如果你想控制每个用户可以访问哪些部署,你应该不启用匿名访问 部署在 Web 服务器上的 ClickOnce 应用程序。相反,您将允许用户根据用户的身份(使用 Windows NT 身份验证)访问您安装的部署。

如果您部署到没有 Windows NT 身份验证的环境,解决方案可能是尝试使用 ASP.NET 基于表单的身份验证 来验证用户。但是,ClickOnce 不支持基于表单的身份验证,因为它使用持久性 cookie;这些存在安全风险,因为它们驻留在 Internet Explorer 缓存中并且可能被黑客入侵。因此,如果您正在部署 ClickOnce 应用程序,则不支持除 Windows NT 身份验证之外的任何身份验证方案。

传递参数

如果您必须将参数传递到 ClickOnce 应用程序,则会出现额外的安全注意事项。 ClickOnce 使开发人员能够向通过 Web 部署的应用程序提供查询字符串。查询字符串在用于启动应用程序的 URL 末尾采用一系列名称-值对的形式:

http://servername.adatum.com/WindowsApp1.application?username=joeuser

默认情况下,查询字符串参数被禁用。要启用它们,属性 必须在应用程序的部署 list 中设置 trustUrlParameters .可以从 Visual Studio 和 MageUI.exe 设置此值。有关如何启用传递查询字符串的详细步骤,请参阅如何:在 ClickOnce 应用程序中检索查询字符串信息。

在不检查参数以确保它们是安全的情况下,永远不要将通过查询字符串检索到的参数传递给数据库或命令行。不安全参数是包含数据库或命令行转义字符的参数,可能允许恶意用户操纵您的应用程序以执行任意命令。

注意:查询字符串参数是在启动时将参数传递给 ClickOnce 应用程序的唯一方法。您不能从命令行将参数传递给 ClickOnce 应用程序。

关于.net - 受密码保护的 .NET ClickOnce 部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/195454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com