繁体   English   中英

使用Windows身份验证的Windows平板电脑应用程序

[英]Application for Windows tablet using Windows Authentication

我们拥有一个相当大而复杂的业务线系统,该系统具有多个桌面应用程序,并且在内部网中以及外部都为系统的外部用户部署了3或4个Web门户。

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

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

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

另一方面,我可以构建一个常规的WPF应用程序,使我可以毫无问题地使用EF和Windows身份验证。 但是我会缺少用于平板电脑的Windows应用商店应用程序的轻击,滑动,捏合和所有其他出色的触摸功能,我相信客户会期望这些功能。 有用于WPF的Telerik的UI,但这会增加客户端的成本,而且我甚至不确定该API是否会为我提供WinRT中可用的全部功能。

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

编辑:经过进一步研究,我发现Windows Store应用程序可以被侧载,这是绕过Windows Store的一种方式。 因此,现在我只需要确定旁加载的应用程序是否可以在Windows 8 Pro平板电脑上使用Integrated Security。

有两种解决方案:

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

2)使用.Net Framework。 使用以下方法在本地创建à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 Store应用使用此服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM