1

我正在尝试稍后使用System.DirectoryServices. 我想使用 MVC 2 框架,并且我的所有视图大部分都是强类型的。有谁知道这个的好方法?

例如我开始创建一个组实体:

public class Group
{
    public string DistinguishedName { get; set; }
    public string GroupName { get; set; }
}

还有一个抽象接口:

public interface IGroupRepository
{
    List<Group> Groups { get; }
}

我对使用 system.directory 服务开发 GroupRepository 感到困惑。连接到 SQL 数据库很容易,到处都有示例,但我无法找到任何将 System.directory 服务与使用 MVC 的类结合使用的示例。有没有人试图做这样的事情?任何伟大的将是

4

1 回答 1

2

如果您使用的是 .NET 3.5(并且如果您使用 MVC 2,则很有可能),您应该查看新的System.DirectoryServices.AccountManagement命名空间,它为您的许多目录对象带来了许多强大的 .NET 类和类型定期处理 - 无需重新发明轮子(再次!)。

查看 MSDN 杂志中有关如何使用此 S.DS.AM 命名空间的这篇精彩文章:

在 .NET Framework 3.5 中管理目录安全主体

更新:由于我不完全理解的原因,使用 aUserPrincipal作为 ASP.NET MVC 视图模型的简单方法不起作用 - 似乎 ASP.NET MVC 无法“找到”该对象上的任何属性。

所以方法必须是这样的:

  • 从 Active Directory 中获取您的UserPrincipal(或)DirectoryEntry
  • 定义一个单独的ViewModel- 这只是一个包含属性的类,如名字、姓氏等
  • 您可以自己填写 ViewModel 类,也可以获取AutoMapper之类的帮助,以便更轻松地从UserPrincipal( DirectoryEntry) 映射到 ViewModel
  • 然后在标准 ASP.NET MVC 视图中显示(或编辑)您的 ViewModel 类
  • 通过将任何更改从 ViewModel 传输回“正确”对象并持久化该对象来处理任何可能的更新

它比我希望的要复杂一些 - 但老实说,我不知道你还能如何做到这一点。

于 2011-01-31T21:38:58.707 回答