In ASP.NET;Wie kann ich mich mit ASP.NET-Mitgliedschaft von einer entfernten HTML-Seite auf einer anderen ASPX-Seite anmelden?

StackOverflow https://stackoverflow.com/questions/8891386

Frage

Grundsätzlich muss ich mich bei einer anderen Domain anmelden, die eine asp.net-Mitgliedschaft verwendet.

Wenn wir eine ASP.net-Webanwendung haben, die einerseits die ASP.Net-Mitgliedschaft verwendet, und eine HTML-Seite aus einer anderen Domain.

Ist es möglich, sich über eine entfernte HTML-Seite bei der ASP.NET-Website anzumelden.

Ich habe dies bereits mit Coldfusion gemacht, aber die ASP.NET-Mitgliedschaft verwendet ein Serversteuerelement.

Prost!

War es hilfreich?

Lösung

Unter dem Anmeldeserver-Steuerelement verwendet ASP.NET eine MembershipProvider-Implementierung und eine Formularauthentifizierung für einen Benutzer mit ASP.NET-Mitgliedschaft. Sie können diese Schritte ohne Verwendung des Anmeldeserver-Steuerelements replizieren, indem Sie die Anmeldeinformationen manuell überprüfen und dann das FormsAuthentication-Cookie an den Response anhängen.

Hier sind einige Ressourcen, die Ihnen den Einstieg erleichtern sollen:

  • Grundlegendes zum Formularauthentifizierungsticket und -cookie - MSDN
  • Erklärt: Formularauthentifizierung in ASP.NET 2.0 - MSDN
  • Prüfung der Mitgliedschaft, Rollen und des Profils von ASP.NET - 4guysfromrolla

    Sie würden wahrscheinlich auch davon profitieren, über die Quelle des Login-Steuerelements nachzudenken, damit Sie die genaue Abfolge der Ereignisse verstehen, die auftreten, wenn sich ein Benutzer mit dem Serversteuerelement anmeldet. Dies sollte es für Sie einfacher machen zu verstehen, wie Sie diese Funktionalität für Ihren speziellen Anwendungsfall replizieren können.

    Als Randnotiz würde ich empfehlen, eine benutzerdefinierte IHttpHandler-Implementierung als Injektionspunkt für die Verarbeitung der Anmeldeanforderung zu verwenden. Es gibt jedoch viele Möglichkeiten, wie Sie diese Aufgabe ausführen können .

    Update, ich fühle mich großzügig, also

    Nachfolgend finden Sie einen Beispielhandler, mit dem Sie einen Benutzer mit ASP.NET Membership und FormsAuthentication anmelden können (genau wie das Serversteuerelement).

    Dieser Code setzt Folgendes voraus:

    1. Es gibt eine Zuordnung, die entweder mit Routing oder der Datei web.config konfiguriert ist und diesen Handler aufruft.
    2. Die anfordernde Seite verfügt über ein Formular, das auf die URL / Route verweist, die in der web.config oder mit Routing zugeordnet ist, und dass das Formular auf dieser Seite ein username-Eingabefeld mit dem Namen username und einem password enthält Eingabefeld mit dem Namen password.

          public class LoginHandler : IHttpHandler
          {
              void IHttpHandler.ProcessRequest(HttpContext context)
              {
                  string username = context.Request["username"];
                  string password = context.Request["password"];
                  if (!string.IsNullOrWhiteSpace(username) && !string.IsNullOrWhiteSpace(password) && Membership.Provider.ValidateUser(username, password))
                  {
                      FormsAuthentication.SetAuthCookie(username, true);
                      RenderUserLoggedInResponse(context.Response,username);
                  }
                  else FormsAuthentication.RedirectToLoginPage("loginfailure=1");
              }
              private static void RenderUserLoggedInResponse(HttpResponse response, string username)
              {
                  response.Write(string.Format("You have logged in successfully, {0}!", username));
                  response.End();
              }
      
              bool IHttpHandler.IsReusable { get { return true; } }
          }
      

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top