【问题标题】:Application for Windows tablet using Windows Authentication使用 Windows 身份验证的 Windows 平板电脑应用程序
【发布时间】:2016-08-02 00:01:41
【问题描述】:

我们有这个相当大而复杂的业务线系统,它有多个桌面应用程序和 3 或 4 个 Web 门户,部署在内部网和外部,供系统的外部用户使用。

在项目接近尾声时,我们收到了一些额外的更改请求,以添加 3 个应该在某些 Windows 8.1 Pro 戴尔平板电脑上运行的小型应用程序。给我们的要求之一是使用 Windows 身份验证来识别应用程序的当前用户。我们构建的系统在其核心包含一个 SQL Server 数据库,因此这 3 个新的平板电脑应用程序必须提供来自那里的数据。

在设计和开发这三个小应用程序时,我正在尝试找出最好的方法。

一方面,我可以选择开发 Windows 应用商店应用程序。我将无法使用实体框架(就像我对一些桌面 XAML 应用程序所做的那样),但我可以构建一些我可以使用的 RESTful Web API。但是,我读到 Windows Store 应用程序不能轻易地与 Windows 身份验证结合使用(有人说在 WinStore 应用程序中使用 Windows 身份验证是完全不可能的),因此这似乎是我们现在的主要展示障碍。

另一方面,我可以构建一个常规的 WPF 应用程序,让我可以毫无问题地使用 EF 和 Windows 身份验证。但是我会错过点击、滑动、捏合以及所有其他适用于平板电脑的 Windows 应用商店应用程序的出色触摸功能,我相信这些功能是我们的客户所期望的。有 Telerik 的 WPF 用户界面,但这会给客户端增加更多成本,我什至不确定 API 是否会为我提供 WinRT 中开箱即用的全部功能。

有没有人找到一种方法让两全其美的人结婚?

编辑:经过进一步研究,我发现可以旁加载 Windows 应用商店应用程序,这是绕过 Windows 应用商店的一种方式。所以现在我只需要弄清楚旁加载的应用程序是否可以在 Windows 8 Pro 平板电脑上使用集成安全性。

【问题讨论】:

  • 您是否使用 AD 进行身份验证?
  • 是的,客户端使用 Active Directory 对系统的所有用户进行身份验证。
  • 我目前正在研究类似的主题,同样的问题。我会尽力为您提供我的解决方案作为回应。你应该等到明天,因为在巴黎已经很晚了。 ;) 晚安
  • 那么您是否能够在您的 AD 中对侧载应用进行身份验证?
  • 是的,我做到了。我现在就给你答案

标签: c# wpf windows-store-apps winrt-xaml windows-store


【解决方案1】:

有两种解决方案:

1) 使用 Azure AD 身份验证库 (ADAL):ADAL 客户端使应用程序开发人员能够轻松地对云或本地 Active Directory (AD) 的用户进行身份验证, 然后获取用于保护 API 调用的访问令牌。 ADAL 具有许多使开发人员更轻松的身份验证功能,例如异步支持、可配置缓存、令牌存储访问令牌令牌和刷新, 自动刷新令牌过期当访问令牌和刷新令牌可用时,等等。通过处理大部分复杂性,ADAL 可以帮助开发人员专注于业务 逻辑实现和在他们轻松安全的资源中,无需成为安全专家。 在这里您将找不到如何使用 ADAL 连接到 AD 的步骤 https://www.nimbo.com/blog/use-azure-active-directory-adal-windows-store-app/

2) 使用 .Net 框架。在本地创建一个 WCF 服务并使用它:

public bool AuthenticateUserService(string path, string user, string pass)
{
    DirectoryEntry de = new DirectoryEntry(path, user, pass, AuthenticationTypes.Secure);
    try {
        //run a search using those credentials.  
        //If it returns anything, then you're authenticated
        DirectorySearcher ds = new DirectorySearcher(de);
        ds.FindOne();
        return true;
    } catch {
        //otherwise, it will crash out so return false
        return false;
    }
}

然后您从您的 Windows 应用商店应用中使用此服务。

【讨论】:

  • 这个 ADAL 看起来非常有趣。我要调查一下。自从我提出这个问题后,我继续研究,发现在应用程序清单的功能选项卡中,我可以设置企业身份验证标志。你试过吗?如果有,为什么还不够?此时,我的计划是开发一个具有企业身份验证功能的 Win 8 应用程序。我将在所有客户端的平板电脑上加载该应用程序,并让应用程序通过 RESTful API 访问数据层。我希望这种方法能奏效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多