Ich arbeite an der Integration einer Silverlight-Site in unsere bestehende Anwendung und versuche, die Login-Funktionalität zum Laufen zu bringen. Die Silverlight-Anwendung muss über eine eigene Anmeldeseite verfügen, und die Anmeldung muss die vorhandene ASP.NET-Formularauthentifizierung verwenden. Als Teil der Anmeldeprozedur rufen wir externen Code auf. Daher ist die Verwendung der skriptfähigen Methoden, die System.Web.ApplicationServices.AuthenticationService verfügbar macht, keine Option. Ich habe versucht, FormsAuthentication.Authenticate dafür zu verwenden, aber es hat nicht funktioniert. Hat jemand irgendwelche Ideen, wie man das umgehen kann?Wie kann ich Benutzer in einem benutzerdefinierten Webservice authentifizieren?
Antwort
Es klingt, als müssten Sie einen Wrapper-Webservice erstellen, der die Unterstützung der Formularauthentifizierung implementieren kann.
Dies ist etwas, was ich getan habe, so zum Beispiel ich einen WCF-Dienst mit der folgenden Schnittstelle erstellt haben, die von meinem Silverlight-Client verwiesen wird:
[ServiceContract]
public interface IAuthenticationService
{
[OperationContract()]
string Login(string username, string password, bool isPersistent);
[OperationContract()]
bool Logout();
[OperationContract()]
string IsLoggedIn();
}
und dann in meiner Implementierung können Sie benutzerdefinierte Code aufrufen und auch die Formularauthentifizierung api verwenden, zum Beispiel um sich einzuloggen könnten Sie haben:
try
{
//Call you external code here
//Then use the membership provider to authenticate
if (Membership.ValidateUser(username, password))
{
FormsAuthentication.SetAuthCookie(username, isPersistent);
}
}
catch (Exception ex)
{
Logging.LogException("Error in Login", ex);
}
auch nicht, dass Sie das folgende Attribut über Ihnen Klassendefinition in Ihrer Service-Implementierung enthalten müssen asp.net compat haben ermöglicht, die geben du erreichst s zum HttpContext:
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
Die Lösung ist einfach. Erstellen Sie einfach einen benutzerdefinierten Mitgliedschaftsanbieter, der Ihren benutzerdefinierten Code aufruft. Weitere Informationen finden Sie unter this article on MSDN library. Es sind auch vollständige Proben unter 15 seconds und walkthrough video on the ASP.NET website verfügbar. Schließlich erscheint Microsoft has released the source für den integrierten Mitgliedschaftsanbieter
- 1. Wie kann ich Benutzer mit authlogic authentifizieren?
- 2. Wie kann ich Benutzer in Play 2.0 WebSocket authentifizieren?
- 3. Benutzer authentifizieren
- 4. Wie kann ich SMTP in C# authentifizieren
- 5. Wie authentifizieren Benutzer auf Android?
- 6. Symfony2 authentifiziert Benutzer über einen Webservice
- 7. Wie kann ich pg_dump richtig authentifizieren
- 8. Authentifizieren Benutzer in allen virtuellen Servern
- 9. Benutzer kann nicht in MongoDB authentifizieren 3.0.2 Java-Verbindung
- 10. Authentifizieren Windows-Benutzer mit Jquery
- 11. Authentifizieren Benutzer in Linux mit Python 3
- 12. Authentifizieren WCF Rest Webservices
- 13. Authentifizieren Benutzer über Zugriffstoken in Symfony 3
- 14. Wie kann ich einen aufgehängten Webservice simulieren?
- 15. Linux-basierten Benutzer in Java authentifizieren
- 16. Wie zu binden (authentifizieren) einen Benutzer mit LDAP3 in python3
- 17. Wie kann ich Html.BeginForm in einem benutzerdefinierten Helfer verwenden?
- 18. Wie Benutzer gegen Feder Sicherheit in Unit-Tests authentifizieren
- 19. Authentifizieren Sie Benutzer mit SpringSecurity über einen WebService, der einen Benutzernamen und ein Kennwort benötigt
- 20. Wie kann ich Ausnahmen vom Webservice auslösen?
- 21. Wie kann ich von einem Webservice in einem AJAX-Anruf zur Anmeldeseite umleiten?
- 22. Wie kann ich meinen Spring.net Webservice nutzen?
- 23. Wie kann ich meine App mit Google LogIn authentifizieren?
- 24. LDAP-Benutzer über SQL Server 2008 authentifizieren
- 25. Benutzer wechseln oder erneut mit Instagram authentifizieren
- 26. Wie kann ich eine Clientverbindung auf sichere Weise authentifizieren?
- 27. Wie kann ich einem Benutzer in acumatica ein Geschäftskonto zuweisen?
- 28. Wie kann ich eine Benutzersitzung über mehrere Server hinweg authentifizieren?
- 29. Firebase authentifizieren Benutzer über native Facebook-App
- 30. Wie kann ich einen Benutzer mit Devise und Android mit Benutzername/Passwort authentifizieren?
Wo genau ist der Webservice in diesem? –
Das sieht sehr ähnlich wie ein Duplikat von: http://stackoverflow.com/questions/890310/silverlight-asp-net-wcf-authentication-2-0 –
Das Problem ist ähnlich, aber ich kann diese Lösungen nicht verwenden, weil Ich muss einen externen Anruf tätigen, bevor ich mich anmelden kann. –