Ich versuche, auf Benutzeransprüche zuzugreifen, die von der ADFS-Anmeldung zurückkommen. ADFS gibt den Benutzernamen zurück und mit diesem Benutzernamen muss ich eine Abfrage an eine andere Datenbank ausführen, um Benutzerinformationen zu erhalten und sie zu speichern. Ich weiß nicht, wo ich das machen soll und was die beste Praxis ist. Ich kann wie Benutzer Ansprüche im View-Controller zugreifen:Holen Sie sich Benutzeransprüche, bevor eine Seite beim externen ADFS-Login geladen wird
public ActionResult Index()
{
var ctx = Request.GetOwinContext();
ClaimsPrincipal user = ctx.Authentication.User;
IEnumerable<Claim> claims = user.Claims;
return View();
}
Aber was muss ich tun, ist, wie ich Zugriff auf den Behauptungen wie in global.asax.cs oder startup.cs bevor die Anwendung ausgeführt Benutzerinformationen zu speichern.
Das ist mein Startup.Auth.cs Datei:
public partial class Startup
{
private static string realm = ConfigurationManager.AppSettings["ida:Wtrealm"];
private static string adfsMetadata = ConfigurationManager.AppSettings["ida:ADFSMetadata"];
public void ConfigureAuth(IAppBuilder app)
{
app.SetDefaultSignInAsAuthenticationType(WsFederationAuthenticationDefaults.AuthenticationType);
app.UseCookieAuthentication(
new CookieAuthenticationOptions
{
AuthenticationType = WsFederationAuthenticationDefaults.AuthenticationType
});
app.UseWsFederationAuthentication(
new WsFederationAuthenticationOptions
{
Wtrealm = realm,
MetadataAddress = adfsMetadata
});
}
}
Es funktioniert irgendwie, um Benutzerinformationen dort zu erhalten, aber jetzt habe ich ein anderes Problem. Die Authentifizierung scheint lebenslang zu sein, und wo immer ich versuche, eine Verbindung zum Server herzustellen, denkt sie, dass ich trotzdem angemeldet bin und nicht zur ADFS-Autorisierung weiterleite. Ich frage mich, ob ich CookieAuthenticationDefaults auf WsFederationAuthenticationDefaults ändern sollte, um es zu lösen oder irgendeine Idee, was in meinem Code falsch sein kann? – elly
Sorry, mein Schlechter, hatte etwas falsch mit dem Build. Wie auch immer, das hat es gelöst! Vielen Dank. – elly