Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Tokka
Thema: C# User aus dem ActiveDirectory auslesen
Am im Forum: Office-Technologien

Hi,


sehr schön, ja die blöde PageSize... damit habe ich auch gekämpft.

Thema: C# User aus dem ActiveDirectory auslesen
Am im Forum: Office-Technologien

Hi,

hiermit lese ich unser gesamtes Directory aus...


using System;
using System.Collections.Generic;
using System.DirectoryServices;
using System.IO;


namespace ReadOut_AD_Accounts
{
    class Program
    {
        static void Main(string[] args)
        {
            DirectoryEntry dirE = new DirectoryEntry("LDAP://dchostname.vmlab.zz/dc=vmlab,dc=zz");
            DirectorySearcher dirS = new DirectorySearcher(dirE);

            StreamWriter outFile = new StreamWriter("C:\\out.csv", false, System.Text.Encoding.Default);

            dirS.PageSize = 100;
            //dirS.Filter = "(&(mail=*)(|(objectCategory=person)(objectCategory=contact)))";
            dirS.Filter = "(&(|(objectCategory=person)(objectCategory=contact)))";

            HashSet<string> properties = new HashSet<string>();

            properties.Add("sAMAccountname");
            properties.Add("displayName");
            properties.Add("sn");
            properties.Add("givenName");
            properties.Add("title");
            properties.Add("description");
            properties.Add("physicalDeliveryOfficeName");
            properties.Add("telephoneNumber");
            properties.Add("streetAddress");
            properties.Add("l");
            properties.Add("st");
            properties.Add("postalCode");
            properties.Add("homePhone");
            properties.Add("mobile");
            properties.Add("facsimileTelephoneNumber");
            properties.Add("info");
            properties.Add("department");
            properties.Add("company");
            properties.Add("manager");
            properties.Add("memberOf");

            foreach (string property in properties)
            {
                Console.Write(property + ";");
                outFile.Write(property + ";");
            }
            Console.WriteLine();
            outFile.WriteLine();

            foreach (SearchResult result in dirS.FindAll())
            {
                foreach (string property in properties)
                {
                    Console.Write(getValue(result, property));
                    outFile.Write(getValue(result, property));
                }
                Console.WriteLine();
                outFile.WriteLine();
            }
            outFile.Close();
            Console.ReadKey();
        }
        
        static string getValue(SearchResult result, string propName)
        {
            if (result.Properties[propName].Count > 0)
                return result.Properties[propName][0].ToString().Replace(Environment.NewLine, "\\") + ";";
            return ";";
        }
    }
}

Thema: C# User aus dem ActiveDirectory auslesen
Am im Forum: Office-Technologien

Zitat von enokad
.....
Noch eine Frage, wie genau greife ich auf einen bestimmten Pfad zu?
D.h. wenn ich nur die User aus einer OU haben möchte heißt z.B.

Nur Berlin, Gesellschaft1, Users <--

Habt ihr da eine Möglichkeit für mich?
Danke nochmal!

Dazu musst du einfach nur den LDAP Pfad anpassen.


DirectoryEntry dirE = new DirectoryEntry("LDAP://domaincontroller.domain.zz/ou=Users,ou=Gesellschaft1,ou=Berlin,dc=domain,dc=zz");


Lade dir mal einen LDAP Browser z.B. von softerra herunter. Mit dem kannst Du dann entsprechende LDAP Abfragen gegen das AD abdrücken.
Das Hilft durchaus bei der Fehlersuche, und auch am Anfang, wenn man LDAP queries noch nicht so gut hinbekommt.

Sehr hilfreich ist auch noch SelfADSI.

Gruß
tokka

Thema: C# User aus dem ActiveDirectory auslesen
Am im Forum: Office-Technologien

Hi,

setz mal den Filter des DirectorySearcher auf


dirS.Filter = "(&(|(objectCategory=person)(objectCategory=contact)))";

Gruß
Tokka

Thema: Struktur einer Solution in VS 2010: Trotz zweier Classlib-Projekte nur eine DLL erstellen.
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Zusammen,

ich habe ein Frage bezüglich der "Organisation" einer Solution im VS 2010.

Ich habe eine Solution "MyLibrary" angelegt. Dieser Solution habe ich zwei Projekte (Klassenbibliothek) hinzugefügt.

Wenn ich nun meine Solution compiliere, erhalte ich pro Klassenbibliotheksprojekt eine DLL.

Meine Frage ist nun, ist es möglich, die Struktur der Solution beizubehalten, aber nur eine DLL als Release zu bekommen??

Danke

Thema: DirectorySearcher.Filter: Alle User in einer bestimmten Gruppe
Am im Forum: Rund um die Programmierung

Hi,

um alle User einer bestimmten Gruppe auszugeben muss der DN der Gruppe angegeben werden. Wildcards sind dabei nicht erlaubt!!

Der Filte wäre wie folgt:


"(&(objectCategory=person)(objectClass=user)" _
    & "(memberOf=cn=TestGroup,ou=Sales,dc=MyDomain,dc=com))" 

Alternativ geht auch sowas:


using System.DirectoryServices;

DirectoryEntry group = new DirectoryEntry("LDAP://CN=MyGroup, …");
DirectorySearcher src = new DirectorySearcher(group "(&(objectClass=user)(objectCategory=Person))");
src.AttributeScopedQuery = "member";
src.PropertiesToLoad.Add("sn");
src.PropertiesToLoad.Add("givenName");
src.PropertiesToLoad.Add("telephoneNumber");
foreach(SearchResult res in src.FindAll())
{
    Console.WriteLine("…");
}
Quelle: MSDN


Gruß
Tokka

Thema: Problem: .Net Programm unter einem anderen User ausführen
Am im Forum: Rund um die Programmierung

Hallo Zusammen,

ich habe ein kleines .Net Programm entwickelt, mit dem Ich Änderungen an AD Accounts (Gruppenmitgliedschaften) vornehmen kann.

In der assebly.exe.cfg habe ich die Credentials des entsprechenden Users hinterlegt.

Führe ich das Tool als angemeldeter "Domain Admin" aus, geht alles.
Wenn Ich das Tool als "normaler" User ausführe, fällt das Tool auf die Nase.
Es ist offensichtlich, dass die hinterlegten Credentials nicht "gezogen" werden.

Habt Ihr ne Idee, wie man das Programm unter einem anderen User ausführen kann?

Gruß
Tokka

Thema: Mit Interfaces den DAL vom BLL entkoppeln
Am im Forum: Rund um die Programmierung

N'abend zusammen,

ich habe eine Frage zu Interfaces.

Ich habe ein Interface IPersonDAL erstellt:


interface IPersonDal
{
  int Insert(string firstName, string lastName, int age);
}

Dieses wird wie folgt eingesetzt:


public class PersonDAL :IPersonDal {
     public int Insert(string firstName, string lastName, int age) {
        ...
        SqlCommand dCmd = new SqlCommand("InsertData", conn);
        ....
      try {
         ...
      }
     ...
}

Soweit ist mir alles klar!
Aber nun greife ich aus dem BLL auf die Methoden der DAL zu.

Aber wer kann mir erklären welchen es Sinn macht, die Instanziierung mittels

IPersonDal pDAL = new PersonDAL();
durchzuführen?

Bisher habe ich immer

PersonDal pDAL = new PersonDAL();
genutzt.

Danke

Ergänzug:

Wenn ich das recht verstehe, müsste ich die Instanziierung der DAL in der BLL gegen das Interface durchführen, da die Implementierung ja immer gegen ein Interface und nicht gegen eine konkrete Klasse erfolgen soll.

So wie ich es früher gemacht habe, würde die Implementierung nciht der losen Kopplung entsprechen.

Liege ich damit richtig??

Thema: Eure Meninungen zu Windows Server 2008
Am im Forum: Smalltalk

Moin!

Ja, Windows2008 als Workstation zu nutzen bzw. es in eine Workstation zu verwandeln ist auch ne nette idee. Allerdings ist die Lizenz ja unwesentlich teurer :)

Thema: Eure Meninungen zu Windows Server 2008
Am im Forum: Smalltalk

Moin!

Wir stellen gerade bei einem Kunden sämtliche Server auf "Server 2008" um. Im eigenen Stall werden alle neu benötigten Server auch auf 2008 betrieben.

Aus meiner Sicht sind hier viele Verbesserungen (Clusterfähige PKI, Read-Only Domaincontroller, DFS, Password-Policy, uvm.). Gut, die Oberfläche ist gewöhnungsbedurftig, aber eigentlich ist alles ja sehr ähnlich wie in der lten Version.


Bezüglich deines Bugs schau mal hier. Da Server 2008 und Vista auf dem identischen Kernel basieren, sollte der Tipp helfen.

Gruß

Thema: Applikation erfodert lokale Admin Rechte, gibt es Vorgaben von MS?
Am im Forum: Rund um die Programmierung

Hi!

Also bei der Installtion benötigte Adminrechte sind kein Problem.

Es geht mir darum, ob Microsoft irgend was bekannt gegeben hat, wo man was speichern darf usw. Also kein Design pattern...

Thema: Applikation erfodert lokale Admin Rechte, gibt es Vorgaben von MS?
Am im Forum: Rund um die Programmierung

Hallo Zusammen,

Ich habe gerade eine individuell erstelle Software von einer Firma vor mir, die in unserem Auftrag das Programm entwickelt hat.

Nun, die Software läuft eigentlich soweit gut, aber nur, wenn der angemeldetet User am Clientsystem über lokale Administratoren-Rechte verfügt.
Unsere Sicherheitspolicy sagt aber, dass User nur "Standarduser" bzw. "Power Users" sind.

Ich frage mich nun, ob es von Microsoft einen Design Guide gibt, der z.B. festlegt in welche Bereiche der Registry informationen abgelegt werden dürfen und in welche nicht. Es geht mir darum, dass ichnciht möchte, das zukünftig bei uns hausintern entwickelte Software auch erhöhte Reche benötigt, weil man sich nicht an Vorgaben von Microsoft gehalten hat.


Kann mir jemnd helfen und mir sagen, worauf zu achten ist und wie ich Software entwickele, die nur minimale Rechte des Users benötigt?!

Vielen Dank!!

Thema: VM vorinstallieren
Am im Forum: Smalltalk

Moin!

Es gibt mehrer Möglichkeiten.

a) Erstelle mit VMWare ein Clone. Dabei wird auch eine neue SID generiert. Dann obliegt es Dir, noch den PC-Namen zu ändern.

b) Ich nutze Sysprep. Ich habe also mein WinXP vorkonfiguriert und habe dann das ganze neu "versiegelt". Bei der Installation wird nur noch nach dem PC Namen und dem Admin Kennwort gefragt. Danach ist die Maschine sofort einsetzbar.


Für den Anfang würde ich dir "a" empfehlen.

Thema: n-Tier und Client-Server
Am im Forum: Rund um die Programmierung

Moin!

Schau dir das mal an: .Net Application Server

Rainbird hat da ein sehr gutes Beispiel wie ich finde....

Ist sicherlich nen Blick wert.

Thema: Heisst es "der" oder "das" Account
Am im Forum: Smalltalk

Zitat von GMLOD
Also ich streite mich gerade mit einem Kumpel:

Er will einfach nicht einsehen, dass es korrekterweise "das Account" (von das Konto bzw. Benutzerkonto) heissen müsste und wirft mir vor der deutschen Sprache nicht mächtig zu sein.

Er meint, es hiesse "der Account", weil es von "der Zugang" abgeleitet sei.

Das halte ich für Schwachfug, denn Zugang ist, meiner Ansicht nach, mit dem Wort Access übersetzt und hat nichts mit dem Wort Account zu tun.

Was meint ihr?

Moin,

der Account, das Account total egal. Ist beides Denglisch!

Es heisst etweder Account oder Benutzerkonto. Entscheidet Euch einfach für eine Sprache und mischt diese nicht!

Gruß

Thema: Fingerabdruckscanner an Notebooks - Ein biometrischer Witz?
Am im Forum: Smalltalk

Hallo!

Sicherheit ist immer relativ zu sehen. Alles ist knackbar, man braucht nur Zeit, Wissen und genügent kriminelle Energie

Generell sollten Notebook User, die sensible Daten auf Ihrem Gerät haben eine Festplattenverschlüsselung mit PreBoot-Authentification nutzen.

In der Firma haben wir gerade zur neu ausgerollten Festplattenverschlüsselung auch Tokens ausgegeben. Die Windowsanmeldung und die VPN/Wlan verbindungen können nun nur noch über gültige Zertifikate genutzt werden.

Das ganze macht das nun sicherer, aber einen 100%igen Schutz erreicht man trotzdem nicht.

So far

Thema: SQl Server 2005 Express
Am im Forum: Datentechnologien

Zitat von FZelle
Das willst du dir nicht wirklich antun.

Was hast Du gegen DB2 ? 8o

Thema: SQl Server 2005 Express
Am im Forum: Datentechnologien

Das ist abhängig von dem was Du brauchst.

- PostgreSQL ist openSource und ziehmlich leistungsfähig.
- Oracle Express Edition (kostenlos, aber auf 4GB beschränkt)
- IBM DB2 Express (nicht kostenlos, kein Beschränkung)

Wieviele User sollen auf die DB zugreifen, usw?

Je nach Rahmen-Parametern muss man dann schauen. In einem Projekt (Fiirma mit 15 Arbeitsplätzen) haben wir damals entschieden, einen windows 2003 SBS Premium einzusetzen. Das war im endeffekt günsitger, als Windows 2003 Server + SQL Server zu kaufen.

Thema: Windows GPO verhinder Ausführung von .NEt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Moin!

Zitat von burning snow
Die Fragen von herbivore sind meiner Meinung nach auch unbeantwortet
Stimmt, hier die Antworten
Zitat von herbivore
GPO = Group Policy Object?
Korrekt!
Zitat von herbivore
Bekommst du Fehlermeldungen beim Starten der Anwendung?
Nein, die Anwendung starten einfach nicht. Im taskmanager sehe ich das der Prozess läuft, aber sonst nix. Ab und an kommt nach 20 Minuten die Anwendung dann doch noch hoch. Deinstalliere ich .Net 2.0 gehts sofort (auch mit den alten GPO´s)
Zitat von herbivore
Benutzt deine Anwendung das WebBrowser-Control?
Das kann ich nicht beantworten, da die Anwendung von der Fimra Kofax kommt
Zitat von herbivore
Liegt deine Anwendung auf einem Netzlaufwerk?
Auf einer Netzwerkfreigabe liegen einige Configurationsfiles.


Zitat von burning snow
Um was für eine Anwendung handelt es sich denn?
Eine Scansoftware von der Firma Kofax.


Wie gesagt, die Anwendung funktinoiert mit den GPO´s und .Net 1.1
Wird .Net 2.0 eingesetzt geht es nicht mehr, solange die GPOs aktiviert sind!?

Thema: Windows GPO verhinder Ausführung von .NEt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Moin!

Ja mit GPO meinte ich Group Policy Object

Dei Anwendung kommt von einer Fremdfirma, vondaher weiss ich nicht, was die gemacht haben.

Ich habe eben herausgefunden, das die Anwendung läuft, wenn nur .Net 1.1 installiert ist. Wird zusätzlich .Net 2.0 installiert startet die Anwendung nicht mehr.

das ist alles merkwürdig

Thema: Software Architektur / Schichtentrennung unter C# (Beispiel Anwendung)
Am im Forum: Rund um die Programmierung

Rainbird hat hier eine Beispielanwendung erstellt.
Biespielanwendung

Thema: Windows GPO verhinder Ausführung von .NEt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich habe ein Problem mit Anwendungen die auf .Net basieren.

Auf dem Zielsystem werden diverse GPO's _für den IE_ angewendet. Irgend eine Einstellung innerhalb
der GPO´s führt dazu, dass keine Anwendungen die auf .net basieren ausgeführt werden.

Nun, habt Ihr eine Idee, welche Einstellung innerhalb der IE GPO´s zu so einem verhalten führen können?
(Wenn ich die GPO deaktiviere, laufen auch die Anwendungen)

Thema: Fragen, Diskussion, Kritik zu Projekt ".NET Applikationsserver"
Am im Forum: Rund um die Programmierung

@RPlaner: Es tut mir leid, aber mir bleibt der Sinn verschlossen, was Dein Problem mit dem Applicatin Server von Rainbird zu tun haben.

Thema: Best practice für semistatische Teildaten?
Am im Forum: Datentechnologien

Hi!

Also ich würde immer eine ID als Primär-Schlüssel nehmen!

Der Vorteil ist, das du durchaus mehre Spalten haben kannst, die du durch den PK ansprichst.

ID uniqueidentifier <- PK
BookTypeDE nvarchar(20)
BookTypeEN nvarchar(20)


Desweiteren lassen sich Spalten mit Zahlen besser sortieren, als mit Zeichen.

Wenn man den Speicherplatz zwischen int und char vergleicht, wird man auch feststellen, das ein int weniger platz braucht (oder täusche ich mich?)

Thema: Fragen, Diskussion, Kritik zu Projekt ".NET Applikationsserver"
Am im Forum: Rund um die Programmierung

Hi Rainbird!

An dieser Stelle noch mal ein große Dankeschön!!

Ich habe anhand deines Beispiels mal angefangen eine Anwendung zu erstellen. Es hilft mir sehr, immer wieder bei Dir "nachzusehen", wie Du das ein oder andere gelöst hast.

Freue mich schon, auf die von Dir gennanten Erweiterugen

Thema: Zukunft von Client Softwareentwicklern
Am im Forum: Smalltalk

Moin!

Das mit dem "Vertrauen" ist ja in Unternehmen nix besonderes mehr. Man muss halt nur darauf achten, das der externe Dienstleister schon ein entsprechendes Sicherheitsniveau hat. Deshalb lassen sich auch immer mehr Betreiber externer Datacenter nach ISO 27001 zertifizieren.

Viele Firmen gehen aber das Risiko ein, denn kaum eine Firma betreibt die z.B. SAP komplett selbst. Meistens stehen die SAP Server in einem Datacenter eines externen Dienstleisters.

Und Privatleute, die einen Steuerberater haben, sollten sich auch darüber im klaren sein, das Ihre Daten in Nürnberg in einem Datacenter von Datev liegen... also auch ein externer Dienstleister.


Generell würde ich persönlich aber ein Problem damit haben, wenn meine Daten auf irgend einem Webserver liegen.

Thema: Quellcode VNC Viewer
Am im Forum: Smalltalk

Moin!

Schau doch zunächst mal bitte bei SourceForge nach. Ich habe dort lediglich nach VNC gesucht und diverse Treffer gefunden.

Thema: Best practice für semistatische Teildaten?
Am im Forum: Datentechnologien

Hi!

Ich würde dafür eine "Look-Up" Tabelle nehmen. Der Vorteil ist einfach, das man an einer Zentralen Stelle Daten hinzufügen oder Ändern kann, ohne den Quellcode anzufassen. Weiterhin stehen alle Daten in der Tabelle und können wunderbar für Reportings benutzt werden.

Aus meiner Sicht, spielt es eine untergeordnete Rolle, wenn das Datenbank-Modell durch die Normalisierung komplexer wird. Die Normalformen helfen ja nunmal dabei, dass Daten nicht redundant gespeichert werden. (Im Übrigen, große Applikationen wie z.B. SAP setzen auch "Lookup-Tabels" ein)

Thema: Fragen, Diskussion, Kritik zu Projekt ".NET Applikationsserver"
Am im Forum: Rund um die Programmierung

Vielen Dank Rainbird!

Ich finde es super klasse, dass Du ein derartiges Beispiel für uns gemacht hast!!


Danke

Gruß & guten Rutsch

Thema: DataSet/DataTable -> Verbindung zu GUI
Am im Forum: Datentechnologien

Hi!

Ich nutze für unsre Reports eine Stored Procedure, die über Parameter das Result einschränkt.


CREATE PROCEDURE [dbo].[rs_Komponenten]
				@param_1		nvarchar(50) = null,
 				@param_2 		nvarchar(50) = null, 
				@param_3		nvarchar(50) = null,
				@param_4		nvarchar(50) = null
				[email protected] 		bit          = 1

AS
	SET NOCOUNT ON;
	-- Deklaration
	DECLARE @sql		nvarchar (4000) 
	DECLARE @paramlist	nvarchar (4000)

-- Anlegen einer temporären Tabelle
	CREATE TABLE [dbo].[#tmp](
		[Spalte1] [nvarchar](50), 
		[Spalte2] [nvarchar](50),
		[Spalte3] [nvarchar](50),
		[Spalte4] [nvarchar](50)	
	) ON [PRIMARY]
	

-- Aufbau des Statements

	SELECT @sql = 
		'INSERT INTO dbo.#tmp
		 SELECT * FROM Tabelle WHERE (1=1)' 
		 
	-- Aufbau der Where Bedingungen, werden über die Berichtsparameter gesteuert
	IF (@param_1 IS NOT NULL)
		SELECT @sql = @sql + ' AND [@param_1]= @xparam_1'

	IF (@param_2 IS NOT NULL)
		SELECT @sql = @sql + ' AND [@param_2]= @xparam_2'

	IF (@param_3 IS NOT NULL)
		SELECT @sql = @sql + ' AND [@param_3]= @xparam_3'

	IF (@param_4 IS NOT NULL) 
		SELECT @sql = @sql + ' AND [@param_4]= @xparam_4'

	--IF @debug = 1
	--	Print @sql


	SELECT @paramlist = '@xparam_1		nvarchar(50),
 					 @xparam_2		nvarchar(50),
					 @xparam_3		nvarchar(50),  
					 @xparam_4		nvarchar(50)'

	EXEC sp_executesql @sql, @paramlist, @param_1, @param_2, @param_3, @param_4

	set NOCOUNT off;
	select * from dbo.#tmp;
	set NOCOUNT on; 

	-- Cleanup                                  
	drop table #tmp;
	return 0;

Damit ist es möglich 0 bis 4 Parameter zu übergeben. Man kann das dann beliebig erweitern....


Falls es eine bessere Lösung gibt, wäre ich daran sehr interessiert