Ich habe eine interne Anwendung mit zwei Sicherheitsebenen. FormsAuthentication für die Clientanwendung und NTLM Integrated Authentication für die Verwaltungsschnittstelle.
Ich kann mich einfach als Client ausgeben, indem ich einfach das richtige .ASPXAUTH-Cookie mit den Methoden der FormsAuthentication-Klasse erstelle. Die Erzeugung des HTTP-Authentifizierungs-Headers für NTLM ist jedoch bisher nicht möglich.
Ich hatte meine Hoffnungen, als ich diesen Artikel ( Ссылка ) fand, aber dann Ich erkannte, dass es nur einen Kontext erstellt, um Code für die Dauer der Anfrage auszuführen. Und ich möchte meine gesamte Sitzung wechseln, damit der Server denkt, dass ich eine andere Domänenanmeldung verwende. Ich verfüge über Administratorrechte für mein Konto. Es dient also nicht dazu, Domänenkennwörter zu umgehen oder zu stehlen.
Ist es überhaupt möglich? Danke.
Nehmen wir an, Sie haben die Formularauthentifizierung aktiviert, die ASP.NET-App mit dem Anmeldeformular login.aspx, und Ihre Benutzer werden in der Datenbank gespeichert. Jetzt möchten Sie sowohl die Formular- als auch die Windows-Authentifizierung unterstützen. Das mache ich:
Für Formulare auth verwende ich SQL DB mit, sagen wir, Benutzer Tabelle. Ich füge dieser Tabelle eine neue Spalte mit dem Namen WindowsUserName hinzu, in der ich den Windows-Benutzernamen im Formular COMPUTER \ User
speichern werdeIm Formular login.aspx füge ich eine Methode hinzu, die eine Antwort sendet, die das Anmeldefenster anzeigt:
%Vor% Irgendwo habe ich einen Link wie <a href="login.aspx?use=windows">Admin</a>
In login.aspx Page_Load habe ich hinzugefügt:
%Vor%GetUserIdForWindowsUser und GetApplicationUser sind meine Methoden nur für Beispiel.
Tags und Links c# asp.net impersonation ntlm