programmatische login mit .net-Mitgliedschaftsanbieter
Ich versuche ein unit test ein Stück code, das muss einem aktuell angemeldeten Benutzer in den test. Mit Hilfe der .Net 2.0-Mitgliedschaftsanbieter, wie kann ich programmgesteuert melden Sie sich als Benutzer für diesen test?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich fand es am bequemsten, Sie erstellen eine Einweg-Klasse, die Griffe setzen und rücksetzen Thread.CurrentPrincipal.
In der test-Methode, die Sie nur wickeln Sie Ihren Anruf mit einer using-Anweisung wie folgt aus:
Funktioniert der code tatsächlich muss ein Benutzer angemeldet über ASP.NET oder hat es brauchen nur ein CurrentPrincipal? Ich glaube nicht, dass Sie brauchen, um programmgesteuert bei der Website anmelden. Sie können erstellen Sie eine GenericPrincipal, setzen Sie die Eigenschaften, die Sie benötigen, und bringen Sie es auf, zum Beispiel Thread.CurrentPrincipal oder verspottet HttpContext. Wenn Ihr code auch tatsächlich braucht RolePrincipal oder so dann würde ich den code ändern, um weniger gekoppelt ist, um ASP.NET -Mitgliedschaft.
Mit Ihrer Mitgliedschaft können Sie validieren Sie einen Benutzer mithilfe der Mitgliedschaft.ValidateUser. Dann legen Sie die Authentifizierungs-cookie mit FormsAuthentication.SetAuthCookie. So lange, wie Sie einen cookie-container dies sollte Ihnen ermöglichen, log-in eines Nutzers.