2016-05-16 5 views
1

Active Directoryユーザーにカスタム文字列を保存することはできますか?たとえば、セミコロンで区切られたuser-rolesのリストを含む文字列ですか?たとえば、DirectoryEntryには、read;write;などの値を持つuserRolesのようなものが含まれていますか?Active Directoryユーザープロパティにカスタムユーザーロールを保存する

私はこれらの情報を設定し、C#でアクセスしようとしています。

ありがとうございます!

+1

解決策として@DVK回答を受け入れていますが、私はあなたの検討のために彼の答えの上に何かを追加したいと思います。 'Active Directory Lightweight Directory Services'または' ADLDS'はあなたが達成しようとしているものに適しています。 – smr5

+0

ありがとう、私はそれを見てみましょう:) – BendEg

答えて

1

基本的に3つのオプションがあります。

  1. 組織にExchangeがインストールされている場合は、ADにextensionAttribute1-15が自動的に追加され、ユーザー定義データの格納に使用できます。
  2. physicalDeliveryOfficeなどの未使用フィールドを使用して、カスタムデータを格納することができます。
  3. あなたはネットワーク管理者に利益を納得させることができますが、実際にはアクティブディレクトリスキーマを拡張して独自のユーザー定義データを格納することができます。

いずれの場合も、これらのフィールドにクエリを行います(例:System.DirectoryServices.AccountManagementを使用)。データとやり取りします。 Active Directoryはトランザクションデータベースではありません。アプリケーションでアクセスできるユーザーに関するカスタムデータを格納する必要がある場合は、ASP.NETメンバシップとロール(古いが実績のあるテクノロジ)やASP.NET IDなどの情報を調べる方がよいでしょう。私がメンバーシップとロールにもっと精通しているので、私はこれを例として使用します。認証(メンバーシップ)と認可(ロール)の側面は別々です。つまり、ビルトインプロバイダを使用してADを使用してユーザーを認証できますが、たとえば、SQLデータベース、Webサービス、XMLファイルなど、あなたが夢見ることができるものは何でもあります。複数のソース(ADグループとSQLデータベースなど)をチェックしたり、パフォーマンスが問題であればキャッシュを実装したりすることもできます。

  • 開発者は通常、赤テープにあなたがどのようにクエリのADに応じて、アプリケーション
  • を拡張する必要がある任意の時間を意味し、それをコントロールしていない、パフォーマンスすることができます

    Active Directoryは、いくつかのような欠点を持っていますSQLデータベースのようなものと比較して極端に悪いです

  • エラーが発生した場合にActive Directoryを復元することを幸運にして
  • 新しいネットワーク管理者のインターンがdecをしないという保証はありませんあなたのカスタムフィールドに他の互換性のないデータを貼り付ける
  • あなたのアプリケーションのフィールドのデータを更新するには、ネットワーク管理者/セキュリティ関係者にアプリケーションで他のより重要なデータを変更する危険性のない安全な方法を使用してください。

ADにカスタムデータを格納することは可能ですが、しばしば望ましくない、労働集約的で安全ではありません。

+0

それはそれです。本当にありがとう! – BendEg