密码保护页面

Password protected page

我想向我的 WPF modernUI 应用程序添加一个受密码保护的页面,并且需要一些帮助。

首先,我真的不知道如何在我的案例中正确处理这些东西。

我的应用程序在多台机器上使用。受保护页面应该是某种管理页面,用于编辑应用程序使用的数据库。 我的想法是,只有一个管理员帐户。但是这个帐户可以在任何机器上使用。管理员应该能够更改他的密码。所以服务器上一定有某种可以从任何机器访问的加密密码文件。我不想在应用程序中存储密码,因为这意味着管理员必须在每台机器上更改他的密码。

所以我的问题是:我的想法的 best/safest 解决方案是什么?我只是在寻找提示,因为我不知道要搜索什么。

当今共享数据库的分布式客户端应用程序的最佳实践确实是不直接访问数据库。

您需要的是 WebService。 Web 服务可以是任何东西。它只需要托管在某个地方。它可以是 ASP.NET 应用程序、WCF 服务,甚至是与 .NET 无关的东西,例如 PHP 或 Java 应用程序。

您的应用程序和 WebService 之间的通信取决于您决定使用什么。今天很多人都在使用所谓的 REST APIs,它使用 XML 或 JSON 作为数据传输格式并使用 HTTP 协议。

实施这样的 API 并不难,因为那里有大量的库和解决方案。

您可以在客户端使用 RestSharp 进行通信。这是简单明了的。您还可以使用 WCF 服务。托管在 IIS 某处。

但是您的问题并没有什么特别之处,并且有多种解决方案可用。决定权在你这边,因为它取决于很多事情,比如预算、可用的基础设施等。

你的问题很宽泛,但就 WPF 而言,你可以通过创建 class 派生自 IIdentity 和 IPrincipal 接口的 es 并覆盖应用程序线程的默认标识,在你的应用程序中实现自定义身份验证和授权.请参阅以下博客 post 以获取更多信息和示例。

WPF 中的自定义授权: https://blog.magnusmontin.net/2013/03/24/custom-authorization-in-wpf/

实际凭据应存储在可通过 Web 服务、WCF 服务或其他某种 API 访问的远程服务器上。如何实际获取凭据的详细信息将在上述 link.

示例代码中的 AuthenticationService class 中实现