Es gibt einige Diskussionen über die "Korrektheit", dies zu tun (unten verlinkt), aber Sie können die Variable in speichern.
if (bandProfile != null)
{
userManager.AddToRole(UserId, "Band");
//Store the bandprofile ID anywhere?
HttpContext.Current.Application["BandProfile"] = bandProfile;
return RedirectToAction("Index", "Welcome");
}
Alternativ können Sie eine static
Variable in einer Klasse irgendwo verwenden.
public static class BandProfile
{
public static whatever Profile;
}
if (bandProfile != null)
{
userManager.AddToRole(UserId, "Band");
//Store the bandprofile ID anywhere?
BandProfile.Profile = bandProfile;
return RedirectToAction("Index", "Welcome");
}
Hier ist ein related question, die mit dem gleichen Problem befasst und here ist eine andere.
EDIT:
Um dann diese Variablen zugreifen, können Sie
var bandProfile = HttpContext.Current.Application["BandProfile"];
oder
var bandProfile = BandProfile.Profile;
Nach Microsoft verwenden:
ASP.NET enthält den Anwendungsstatus hauptsächlich aus Gründen der Kompatibilität mit klassischem ASP, so dass vorhandene Anwendungen einfacher nach ASP.NET migriert werden können. Es wird empfohlen, dass Sie Daten in statischen Membern der Anwendungsklasse statt im Application-Objekt speichern.
Das heißt, Sie sollten die static
Variable-Methode verwenden. Statische Variablen sind durch Aufruf von ClassName.Variable
verfügbar und existieren für die Dauer der laufenden App. Wenn die App geschlossen ist oder die Variable anderweitig geändert wird, gehen diese Informationen verloren.
Um die Informationen zu speichern, muss der Inhalt dieser Variablen in eine externe Quelle (DB, Datei, etc.) geschrieben und beim Start der App eingelesen werden.
Wenn ich der Klasse-Variable den Wert zuweisen, Ist der Wert dann "für immer" in dieser Variablen gespeichert? – Bryan
Wie wäre es mit Sitzungen? – Bryan
@Bryan Ich versuche, eine konkretere Antwort für Sie zu finden, aber ich verstehe, dass die Variable für die Dauer der Sitzung des Benutzers festgelegt ist. Es wird keine globale Variable werden, die immer "für immer" da ist. – levelonehuman