none
Überprüfen von Windows Accounts RRS feed

  • Frage

  • Hi an alle,ich habe eine Website, welche später einmal auf Windows Server Systemen laufen soll (Web Interface zur Verwaltung von besimmten Diensten und Software).

    Ich möchte, dass sich Benutzer mit seinem Windows-Benutzeraccount, der bereits auf dem Server existiert, anmeldet. Wie kann ich das am besten anstellen?

    Über die Registry oder gibt es da was von Win32?

    MfG Xe77a

    Mittwoch, 25. Juli 2012 10:26

Antworten

  • Dann stell im iis die anonyme authetification auf deaktiviert und die windows authetification auf aktiviert.

    es kann druch aus sein, das du die windows authetification noch installieren musst, dies machst du über die rolle webserver iis und dessen features.

    Als MVC Projekt empfiehlt sich zu dem die vorlage Intranet Anwendung.

    mfg

    Shmoo


    ***********************************************************

    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 10:59
  • Hi,

    wenn Du nur auf die Windowsuser als solches prüfen willst und keine weitere Unterscheidung innerhalb der Anwendung je nach Benutzer treffen musst, reicht es aus, wenn Du die Einstellungen am IIS vornimmst.

    Hier dann die folgenden Einstellungen vornehmen:


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort vorgeschlagen Lennart F Mittwoch, 25. Juli 2012 11:27
    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 11:17
    Moderator
  • Wie komm ich dann an den Benutzernamen, Benutzertyp ( Admin, Benutzer, Gast, etc. ) und andere Benutzerdaten?

    Da ist natürlich der Punkt, wo eine Intranet Anwendung nett gewesen wäre^^.

    da hast du die möglichkeit einfach mit razor z.b. den usernamen auszugeben

    @User.Identity.Name

    ob dies mit einer internet anwendung funktioniert, müsstest du mal ausporbieren, da diese aber einen eigenen membershipprovider nutzt und nicht die windows nutzerdaten, könnte dies wohl eher schwierig werden.



    ***********************************************************

    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 11:51
  • Hallo an alle,

    ich habe eine Lösung gefunden ( denke ich ;) ).

    Ich habe einfach eine Intranet-Anwendung erstellt und dort wird unter VS2012 direkt eine README geöffnet. In dieser steht eine Anleitung für das Problem Authetification für IIS7, IIS8 und IIS Express. Ich habe das auf meine bestehende Internetanwendung angewendet und es funktioniert. Auch das WebSecurity.IsAuthenticated funktioniert damit.

    Das Problem hat sich also erledigt.

    Vielen Dank für eure Tips und Hilfe

    MfG Xe77a

    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 13:13

Alle Antworten

  • Hi,

    welche Art von Anwendung ist das? ASP.NET?

    Generell kannst Du den Zugriff über den IIS direkt auf Windowsaccounts beschränken, indem Du für die entsprechende Website die anonyme Authentifizierung deaktivierst und die Windows- und ggfs. Standardauthentifizierung aktivierst.

    Um dir konkret sagen zu können, was Du nun wo einstellen musst, beantworte bitte noch die folgenden Fragen:

     - Welches Betriebssystem bzw. welchen IIS verwendest Du auf dem Webserver?

     - Welche Technologie verwendest Du für die Webanwendung?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 25. Juli 2012 10:36
    Moderator
  • Die Seite soll mehrere Betriebssysteme unterstützen aber erst ab Windows Server 2008.
    Also Windows Server 2008, Windows Server 2008 R2 und Windows Server 2012.

    Was genau meinst du mit Technologie? Ich verwende C#, ASP.NET (Razor), Visual Studio 2012 und .NET 4.5

    Mittwoch, 25. Juli 2012 10:49
  • Dann stell im iis die anonyme authetification auf deaktiviert und die windows authetification auf aktiviert.

    es kann druch aus sein, das du die windows authetification noch installieren musst, dies machst du über die rolle webserver iis und dessen features.

    Als MVC Projekt empfiehlt sich zu dem die vorlage Intranet Anwendung.

    mfg

    Shmoo


    ***********************************************************

    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 10:59
  • Danke für dien Antwort,

    die Windows Authetification wurde während der Installation meines Testservers schon mitinstalliert.

    Da ich das Projekt schon erstellt habe (Internet-Anwendung) und der bisherige Code schon sehr viel ist, wäre es doof alles in ein neues Projekt zu kopieren. Kann ich nicht einfach die Funktionen in das bestehende Projekt einbinden. Und wie kann ich eigentlich die Windows Authetification verwenden?

    MfG Xe77a

    Edit: Mir fällt gerade ein, dass das WebInterface des TFS auch die Anmeldung von Windows-Accounts verwendet. Genau so was meine ich ;)
    • Bearbeitet lkraemer Mittwoch, 25. Juli 2012 11:07
    Mittwoch, 25. Juli 2012 11:04
  • Und wie kann ich eigentlich die Windows Authetification verwenden?

    Das macht wie gesagt der IIS. wenn deine Seite/anwendung aufgerufen wird, kommt ein login fenster, wie man es vom router login her kennt. dort gibt man den   windows benutzer namen ein um die berechtigung zum aufruf der seite / Anwendung zu bekommen.

    wie umfangreich es ist, zu fuss aus einer internet anwendung eine intranet anwendung zu machen, kann ich dir leider nicht sagen. da müsste man mal jeweils eine leere anwendung erstellen und drüber gucken, sofern sich hier nicht einer findet der dir genaueres dazu sagen kann. ferner ist es sicherlich auch anwendungsspezifisch ob dies überhaupt nötig bzw. sinnvoll ist.

    MfG

    Shmoo


    ***********************************************************

    Mittwoch, 25. Juli 2012 11:16
  • Hi,

    wenn Du nur auf die Windowsuser als solches prüfen willst und keine weitere Unterscheidung innerhalb der Anwendung je nach Benutzer treffen musst, reicht es aus, wenn Du die Einstellungen am IIS vornimmst.

    Hier dann die folgenden Einstellungen vornehmen:


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    • Als Antwort vorgeschlagen Lennart F Mittwoch, 25. Juli 2012 11:27
    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 11:17
    Moderator
  • Das macht wie gesagt der IIS. wenn deine Seite/anwendung aufgerufen wird, kommt ein login fenster, wie man es vom router login her kennt. dort gibt man den   windows benutzer namen ein um die berechtigung zum aufruf der seite / Anwendung zu bekommen.

    Das ist gut zu wissen.

    @Stefan Falz:

    Wenn ich es richtig sehe kann man das für einzelne Seiten einstellen, oder? Kann ich das auch irgendwie über den Code aktivieren ( Für eine spätere Setup-Routine )?

    Wenn ich jetzt die WA (Windows Authetification) aktiviere, dann erscheint eine solche Dialogbox vom Browser. Der Benutzer gibt die Daten ein und der Server überprüft dann, ob die Daten korrekt sind. Wie komm ich dann an den Benutzernamen, Benutzertyp ( Admin, Benutzer, Gast, etc. ) und andere Benutzerdaten?

    Mittwoch, 25. Juli 2012 11:39
  • Wie komm ich dann an den Benutzernamen, Benutzertyp ( Admin, Benutzer, Gast, etc. ) und andere Benutzerdaten?

    Da ist natürlich der Punkt, wo eine Intranet Anwendung nett gewesen wäre^^.

    da hast du die möglichkeit einfach mit razor z.b. den usernamen auszugeben

    @User.Identity.Name

    ob dies mit einer internet anwendung funktioniert, müsstest du mal ausporbieren, da diese aber einen eigenen membershipprovider nutzt und nicht die windows nutzerdaten, könnte dies wohl eher schwierig werden.



    ***********************************************************

    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 11:51
  • Auf eine Intranetanwendung kann man wahrscheinlich nicht aus dem Internet heraus zugreifen, oder?
    Mittwoch, 25. Juli 2012 12:17
  • Hallo an alle,

    ich habe eine Lösung gefunden ( denke ich ;) ).

    Ich habe einfach eine Intranet-Anwendung erstellt und dort wird unter VS2012 direkt eine README geöffnet. In dieser steht eine Anleitung für das Problem Authetification für IIS7, IIS8 und IIS Express. Ich habe das auf meine bestehende Internetanwendung angewendet und es funktioniert. Auch das WebSecurity.IsAuthenticated funktioniert damit.

    Das Problem hat sich also erledigt.

    Vielen Dank für eure Tips und Hilfe

    MfG Xe77a

    • Als Antwort markiert lkraemer Mittwoch, 25. Juli 2012 13:13
    Mittwoch, 25. Juli 2012 13:13
  • Auf eine Intranetanwendung kann man wahrscheinlich nicht aus dem Internet heraus zugreifen, oder?

    Doch, kann man. nur man braucht einen windows benutzer bzw. einen gültigen aus dem active directory.

    ***********************************************************

    Mittwoch, 25. Juli 2012 13:25
  • Auf eine Intranetanwendung kann man wahrscheinlich nicht aus dem Internet heraus zugreifen, oder?

    Doch, kann man. nur man braucht einen windows benutzer bzw. einen gültigen aus dem active directory

    Öhm. Was hat das eine mit dem anderen zu tun? Eine Intranetanwendung unterscheidet sich von der Technik und den Zugangsdaten nicht zwingend von einer Internetanwendung. Windows- oder gar AD Benutzer braucht man natürlich nicht, um auf irgendwas, sei es Inter-/Intra-/Extra-/...net zugreifen zu können. Das ist lediglich eine Frage der Definition. (Was würden sonst auch Unternehmen machen, die Windows gar nicht einsetzen und daher auch keine Windowsbenutzer haben?)


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 25. Juli 2012 13:33
    Moderator
  • ja, prinzipiell richtig, es geht aber um die vorlagen von visual studio und mvc 4.

    die intranet vorlage kann man von haus aus nur mit windows benutzer aufrufen.  ändern kann man zwar alles, aber wie gesagt, die vorgegebenen einstellung bei der projektvorlage " MVC 4 - Intranet Anwendung".

    readme bei erstellen eines MVC 4 Intranet Projektes :

    In order to use the Intranet template, you'll need to enable Windows authentication

    and disable Anonymous authentication.

    For detailed instructions (including instructions for IIS 6.0), please visit

    http://go.microsoft.com/fwlink/?LinkID=213745

    IIS 7 & IIS 8

    1. Open IIS Manager and navigate to your website.

    2. In Features View, double-click Authentication.

    3. On the Authentication page, select Windows authentication. If Windows

       authentication is not an option, you'll need to make sure Windows authentication

       is installed on the server.

          To enable Windows authentication on Windows:

          a) In Control Panel open "Programs and Features".

          b) Select "Turn Windows features on or off".

          c) Navigate to Internet Information Services > World Wide Web Services > Security

             and make sure the Windows authentication node is checked.

          To enable Windows authentication on Windows Server:

          a) In Server Manager, select Web Server (IIS) and click Add Role Services

          b) Navigate to Web Server > Security

             and make sure the Windows authentication node is checked.

    4. In the Actions pane, click Enable to use Windows authentication.

    5. On the Authentication page, select Anonymous authentication.

    6. In the Actions pane, click Disable to disable anonymous authentication.

    IIS Express

    1. Right click on the project in Visual Studio and select Use IIS Express.

    2. Click on your project in the Solution Explorer to select the project.

    3. If the Properties pane is not open, open it (F4).

    4. In the Properties pane for your project:

    a) Set "Anonymous Authentication" to "Disabled".

    b) Set "Windows Authentication" to "Enabled".

    mfg

    Shmoo


    ***********************************************************



    • Bearbeitet Lennart F Mittwoch, 25. Juli 2012 13:51
    Mittwoch, 25. Juli 2012 13:43
  • Wenn ich also mit einem Windows-Benutzer / ActiveDirectory-Benutzer, der auf dem Server / Host der Seite existiert eine Internet-Anw. und eine Intranet-Anwendung verwenden kann, wo ist dann der Unterschied? Nur bei der Vorlage von VS?

    MfG Xe77a

    Edit: Jetzt wo sich Benutzer anmelden können habe ich noch ein Frage: Wir kann ich einen Benutzer abmelden? Und wie kann ich weitere Daten zum Benutzer Abfragen. Im Moment ist der Username z.B. nur "NameDesPC\User1". Kann ich auch nur "User1" und Accounttyp (Admin, Gast, Benutzer) und weitere Daten abfragen?

    Edit 2: Mir fällt gerade auf, dass diese Anmeldung mit der Basiseinstellung nicht zuverlässig ist. Bei jedem Neuladen einer Seite wird erneut nach den Login-Daten gefragt. Nach ein paar mal wird sogar mehrmals bei einem Ladevorgang gefragt, obwohl die Daten unter Garantie korrekt sind.

    Hat jemand eine Idee woran das liegt?

    • Bearbeitet lkraemer Mittwoch, 25. Juli 2012 16:15
    Mittwoch, 25. Juli 2012 14:58
  •  Ja, der Unterschied zwischen intranet und internet anwendung ist eigentlich die erreichbarkeit der anwendung und nicht die funktionaltität oder, wie stefan schon sagte die anmeldung. da der standard bzw. in den meisten fällen eine windows anmeldung eher bei intranet anwendungen verlangt wird und eine "normale" anmeldung bei internet anwendungen, bietet VS die beiden unterschiedlichen projektvorlagen. man kann natürlich beide vorlagen für das jeweilige andere verwenden, sind ja nunmal nur vorlagen.

    Also wennn ich eine projekvorlage intranet anwendung in  den basiseinstellungen, respektive ohne was zu verändern nutze, werde ich nur einmal für die gesamte session nach dem benutzer gefragt. Schau mal ob du cookies zulässt.


    ***********************************************************

    Freitag, 27. Juli 2012 06:12
  • Cookies, etc werden zugelassen. Allerdings ist mir aufgefallen, dass IE10 und Chrome nicht die ganze Zeit fragen ( Ich denke, dass das aber eher daran liegt, das die Browser die Benutzerdaten direkt vom OS (Windows 8) abfragen und den Account benutzen ). Außerdem erscheint die Abfrage mehrere male wenn ich Strg-F5 drücke. (Was ja den Cache leert, dann wird aber nicht einmal sonder wie geschrieben knapp 5-8 mal gefragt).

    Gibt es irgendwo ein Tutorial/HowTo für die verwendung/programmierung mit der Windows-Authetification?

    Montag, 30. Juli 2012 19:16