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

Antwort per Email an