Moin! Ich habe gerade noch einmal eine NG-Suche gemacht. Wir sind nicht die Einzigen mit diesem Problem -> Beta 2 Bug. Wie gesagt, Du kannst mit der BuiltIn Enumeration arbeiten. Fuer die eingebauten Gruppen ist das ohnehin der sauberere Weg.
Viele Gruesse, Patrick ********* Das erste deutsprachige Buch zur C# Beta 2, jetzt unter http://www.csharp-shortcut.de * Patrick A. Lorenz * Berliner Strasse 17b * 78467 Konstanz * http://www.p-l.de * mailto:[EMAIL PROTECTED] > Hi, > zunaechst mal vielen Dank fuer die Info. Ich habe inzwischen auch schon > mit > diesem IsInRole herumexperimentiert und mir passiert genau das gleiche wie > Dir. IsInRole liefert bei Uebergabe einer Gruppe immer false. Ich habe es > folgendermassen probiert: > AuthAdmin.Text = User.IsInRole("Administrator").ToString(); > Ich habe auch versucht die Gruppe mit OU's zu vertauschen, das Ergebnis > ist > allerdings dasselbe geblieben. > Gruss > Frank > -----Urspruengliche Nachricht----- > Von: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED]]Im Auftrag von Patrick > A. Lorenz > Gesendet: Montag, 15. Oktober 2001 20:51 > An: aspDEdotnet > Betreff: [aspdedotnet] Re: Windows Authentication > Moin! > Ich habe mir die Sache noch einmal ein wenig genauer angesehen, weil es > mich > selbst sehr interessiert. Entweder verstehe es nicht richtig, oder aber da > gibt es noch ein paar Bugs. > Der folgende Code beantwortet zumindest Deine Fragen. Es wird der > Username, > als Beispiel die Zugehoerigkeit zur Admin-Gruppe sowie der volle Name > ausgegeben. > WindowsPrincipal Principal = (WindowsPrincipal) User; > WindowsIdentity Identity = (WindowsIdentity) User.Identity; > Response.Write("Name: " + Identity.Name + "<br>"); > Response.Write("Admin? " + > Principal.IsInRole(WindowsBuiltInRole.Administrator) + "<br>"); > DirectoryEntry DE = new DirectoryEntry("WinNT://" + > Identity.Name.Replace("\\","/")); > Response.Write("FullName: " + DE.Properties["FullName"][0] + "<br><br>"); > foreach(string PN in DE.Properties.PropertyNames) > Response.Write(PN + "<br>"); > foreach(DirectoryEntry objChildDE in DE.Children) > Console.WriteLine(objChildDE.Path); > Ein paar Punkte verstehe ich allerdings nicht ganz: > - IsInRole (sowohl GenericPrincipal als auch WindowsPrincipal) liefert > mit > immer False, sobald ich den Namen einer Gruppe (inkl. Domain) uebergebe. > Verwende ich allerdings WindowsPrincipal und die WindowsBuiltInRole > Enumeration, klappt es wie am Schnuerchen. > - Nach meinem Verstaendnis muessten Informationen wie beispielsweise die > Liste aller Gruppen, denen der User zugeordnet ist, als Children (siehe > letzte foreach) ausgegeben werden. Aber es existieren keine > untergeordneten > Objekte und auch eine Suche mit dem DirectorySearcher kann ich auf Basis > des > Benutzers nicht durchfuehren ("nicht unterstuetzt"). > Hat jemand eine gute Idee? > Patrick >> Moin! >> Das kannst Du mit ADS(I) machen. Die notwendigen Klassen findest Du im >> Namespace System.DirectoryServices. Wenn Du was gebastelt hast, wuerde >> mich das interessieren - kannst es ja mal in die Liste mailen :-) >> Viele Gruesse, >> Patrick >> ********* >> Das erste deutsprachige Buch zur C# Beta 2, >> jetzt unter http://www.csharp-shortcut.de >> * Patrick A. Lorenz >> * Berliner Strasse 17b >> * 78467 Konstanz >> * http://www.p-l.de >> * mailto:[EMAIL PROTECTED] >>> Hallo, >>> ich moechte per Windows Authentication meine auf c# basierende >>> Webappliaktion vor unerlaubten Zugriffen schuetzen. Dazu moechte ich >>> sowohl >>> den Benutzernamen (zur persoenlichen Ansprache) als auch die >>> dazugehoerige >>> Windows-Rolle (Admin, Benutzer, Hauptbenutzer usw.) auslesen und mit >>> Hilfe >>> der Rolle einige Inhalte sperren und ggbfls auch anders darstellen. Im >>> IIS >>> habe ich Basic Authentication eingestellt. Mit dem nachfolgenden >>> Quellcode >>> gelingt es zwar den Benutzernamen und den Authentication Type auszulesen >>> allerdings habe ich keine Ahnung wie ich auslesen kann, ob es sich um >>> einen >>> Admin oder Benutzer kann. Kann mir da vielleicht bitte jemand >>> weiterhelfen. >>> <%@ Page language="c#" debug="True" %> >>> <% @ Import Namespace = System.Security.Principal %> >>> <% @ Import Namespace = System.Threading %> >>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > >>> <html> >>> <script language="C#" runat=server> >>> void Page_Load(Object Src, EventArgs E ) >>> { >>> AuthUser.Text = User.Identity.Name; >>> AuthType.Text = User.Identity.AuthenticationType; >>> AuthTrueFalse.Text = User.Identity.IsAuthenticated.ToString(); >>> //AuthGuest.Text = StrGast; >>> } >>> </script> >>> <body> >>> <h3><font face="Verdana">Windows Authentication</font></h3> >>> <table Width="700" rules="all" bordercolor="Black" >>> style="background-color:#ccccff;bordercolor:black;font-family:Verdana;fo >>> n >>> t >>> -s >>> ize:8pt;border-collapse:collapse;"> >>> <tr> >>> <td>Benutzer:</td> >>> <td><asp:label id=AuthUser runat=server/> >>> </tr> >>> <tr> >>> <td>Authentication Typ:</td> >>> <td><asp:label id=AuthType runat=server/> >>> </tr> >>> <tr> >>> <td>Authenticated:</td> >>> <td><asp:label id="AuthTrueFalse" runat=server/> >>> </tr> >>> <tr> >>> <td>Authentication Rolle:</td> >>> <td><asp:label id="AuthGuest" runat=server/> >>> </tr> >>> </table> >>> </body> >>> </html> >>> Vieln Dank im vorraus >>> Mit freundlichen Gruessen, >>> Frank Tichy >>> Web7 >>> ____________________________________ >>> Siller AG >>> Suedstrasse 90 >>> 74072 Heilbronn >>> Tel.: +49 (0) 7131 / 9967-733 >>> mailto:[EMAIL PROTECTED] >>> http://www.siller.de >>> http://www.palmandmore.de >>> Postadresse: >>> Wannenaeckerstrasse 43 >>> 74078 Heilbronn >>> | [aspdedotnet] als [EMAIL PROTECTED] subscribed >>> | http://www.aspgerman.com/archiv/aspdedotnet/ = Listenarchiv >>> | Sie koennen sich unter folgender URL an- und abmelden: >>> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedotnet.asp >> | [aspdedotnet] als [EMAIL PROTECTED] subscribed >> | http://www.aspgerman.com/archiv/aspdedotnet/ = Listenarchiv >> | Sie koennen sich unter folgender URL an- und abmelden: >> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedotnet.asp > | [aspdedotnet] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdedotnet/ = Listenarchiv > | Sie koennen sich unter folgender URL an- und abmelden: > | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedotnet.asp > | [aspdedotnet] als [EMAIL PROTECTED] subscribed > | http://www.aspgerman.com/archiv/aspdedotnet/ = Listenarchiv > | Sie koennen sich unter folgender URL an- und abmelden: > | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedotnet.asp | [aspdedotnet] als [email protected] subscribed | http://www.aspgerman.com/archiv/aspdedotnet/ = Listenarchiv | Sie k�nnen sich unter folgender URL an- und abmelden: | http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedotnet.asp
