Category: FAD開発

必要なのでWindowsアプリのパケットキャプチャーしてみた。

概要 ファイル権限デザイナーの製品についてネットワークポートのチェックが必要になり。 パケットキャプチャー(packet capture)してみました。 エンタープライズのお客様ですと、グローバルでネットワークを組み、パケットフィルタリング等も行っているので 使用ポート等の問い合わせを受けるときがあります。 予想されるポート 前回ブログ(ファイル権限デザイナーで使用しているNet系APIについての解説)のような関数を使用しており、 クライアントPCからファイルサーバの権限情報取得・設定、ユーザ情報の読み込みには 主に LDAP, SMB, DNS を使っていると想定されるます。  パケットキャプチャーしてみよう。! 以下のサイトから [Microsoft Network Monitor 3.4]をダウンロードして、インストールします。http://www.microsoft.com/en-us/download/details.aspx?id=4865 インストール後(以下はWindows8の画面 )、管理者権限で起動します。 新規作成してキャプチャーを開始します。 キャプチャー結果は以下のとおり正解でした!!!TCP 135 DHCP server, DNS server and WINSTCP 445 Microsoft-DS Active Directory, Windows shares(SMB2)TCP 389 Lightweight Directory Access Protocol (LDAP)   次回 今回はポートを確認できましたので、次回は実際にFirewall 等を使用して、アプリの動作確認をしてみます。 参考 Windows 8 でパケットキャプチャ

Apps for Office 勉強会#1 – 初心者向けApps for Office とその周辺情報

Apps foroffice seminar_1st_beginners from Noro Seiji

ファイル権限デザイナー Ver. 2.0 企画書

ファイル権限デザイナーで使用しているNet系APIについての解説

はじめに ファイル権限デザイナーはC#で作成されていますが、ファイル権限の操作のところ .NETのライブラリーだけでは難しいので、重要な機能はAPIで作成されております。その一例を紹介します。 今回はNetAPI系を説明します。 ユーザを追加するときに、ユーザ一覧が必要ですが、まず、対象のファイルを管理している、PCがドメインコントローラか、スタンドアローンサーバか、ワークステーションか判断する必要があります。それにより、ドメインコントローラからユーザ一覧を取得したり、サーバローカルのユーザからユーザ一覧を取得したり制御しています。 ファイル権限デザイナーで使用しているNetAPIの一部 //NetUserChangePassword ユーザーのパスワードを変更 //NetUserGetGroups ユーザーが属しているグローバルグループのリストを取得 //NetUserGetInfo ユーザーアカウントに関する情報を取得 //NetUserGetLocalGroups ユーザーが属しているローカルグループのリストを取得 //NetUserSetGroups アカウントに対するグローバルなグループメンバの資格を設定 //NetUserSetInfo ユーザーアカウントのパラメータを設定 //NetUserModalsGet すべてのユーザーとグローバルなグループのグローバルな情報を取得 //NetUserModalsSet すべてのユーザーとグローバルなグループのグローバルな情報を設定 //NetLocalGroupAdd ローカルグループを作成 //NetLocalGroupAddMembers ローカルグループに既存のアカウントまたはグローバルグループのメンバの資格を与える //NetLocalGroupDel ローカルグループアカウントとそのすべてのメンバを削除 //NetLocalGroupDelMembers 特定のローカルグループからメンバを削除 //NetLocalGroupEnum ローカルグループアカウントに関する情報を取得 //NetLocalGroupGetInfo サーバー上の特定のローカルグループアカウントに関する情報を取得 //NetLocalGroupSetInfo ローカルグループアカウントのパラメータを設定 //NetShareAdd //NetShareDel //NetShareEnum //NetShareGetInfo //NetShareSetInfo using System; using System.Text; using System.Runtime.InteropServices; using System.Diagnostics; using System.Collections; using System.Collections.Generic; namespace Cadree.Common.Object { public class CaD_API_NetApi32 { //——————————————————————————————————————– // GetServerNameFromFQN //——————————————————————————————————————– static private STRUCT_strServerName_Original GetServerNameFromFQN(string strFQN) { STRUCT_strServerName_Original strServerName_Original; strServerName_Original.value = “”; if (strFQN != “”) { if (strFQN.Substring(0, CAD_String.YENYEN.Length) == CAD_String.YENYEN) { int nPos = strFQN.IndexOf(CAD_String.YEN, CAD_String.YENYEN.Length); if (nPos == -1) { strServerName_Original.value = strFQN.Substring(CAD_String.YENYEN.Length); } else { strServerName_Original.value = strFQN.Substring(CAD_String.YENYEN.Length, nPos – CAD_String.YENYEN.Length); } } […]