跳至正文
首页 » 博客 » Using ProGet: Package Level Filtering for Infragistics Customers

Using ProGet: Package Level Filtering for Infragistics Customers

一般用途:

自16.2启动以来,Infragistics已跨所有的我们通过我们的软件包存储库为许可用户提供的UI控件; 我们一直在使用ProGetInedo在两个核心中管理我们的软件包场景。在这篇文章中,我们将讨论如何ProGet 帮助过美国achieve对仅允许Infragistics客户访问的提要进行包级筛选

问题:

我们希望将我们的私人NuGet feed公开给具有活跃订阅和提供一个我们可以公开声明的URL,但是一个只有获得许可的客户才能访问 to 我们也希望避免执行额外的工作 (例如创建和管理新帐户a第三派对服务)。客户应该只需要他们的Infragistics凭据即可使用Infragistics内容。

我们还需要限制他们可以浏览的产品和版本,他们已经支付的软件包。托管私有提要通常需要采用全有或全无的提要管理方法。意思是,你要么看到所有的包或者你不看到他们中的任何一个。对feed的访问通常也由feed所有者设置提前。我们希望让客户尽可能无摩擦地访问我们的费用d; needing to create个帐户并让Infragistics的人分配权限不会那么无缝

什么是ProGet提供解决此问题:

ProGet提供分机 支持这允许我们将功能插入到浏览feed上的包的过程中。如果提要 “客户” 是Infragistics组织的成员,则内置的ActiveDirectory提供的功能ProGet会工作。由于我们的客户不是Infragistics组织的一部分,因此我们需要一个可以在ActiveDirectory。幸运的是,我们可以继承所需的功能并覆盖身份验证行为以满足我们的需求。

我们是如何做到的:

  1. 创建简单类库项目
  2. 包含Inedo.SDK N u G et包作为一个依赖
  3. 创建了一个自定义用户目录类来处理我们自己的身份验证:
    • nherited从Inedo.Extensibility.UserDirectories.UserDirectory
    • 覆盖的方法handle用户的注册和创建e新建ProGet用户需要。
    • 已创建内的用户Proget数据库,以便存储用户。
  4. 一旦用户可以访问

  5. ProGet和我们的feed,o您的自定义包过滤接管:
    • 创建了一个覆盖的类Inedo.Extensibility.PackageFilters。PackageFilter
    • 我们推翻了Ispackage包括方法,并执行我们自己的逻辑来确定if包与该用户相关。自用户是已通过身份验证他们的Infragistics.com帐户s,我们知道什么产品和版本他们购买。我们将其与我们的软件包名称,版本号和发布日期进行了比较,以确定是否将其包含在客户列表中。
  6. 一旦我们的项目被编译和 *。inedox(*。progetx) 文件已生成,p把那个文件绑在里面ProGet扩展文件夹在 “管理器扩展” 页面中显示了我们的扩展。
  7. 一旦扩展是已加载Proget,我们的自定义目录显示在 “更改用户目录” 对话框中,我们只是切换到它。
  8. </ol