Ich lerne, wie die Asp.Net MVC Identity 2.0 funktioniert.Zerlegung der ASP.NET MVC-Identität für die OAuth-Bearer-Authentifizierung
Ich habe diesen Code,
[HttpGet]
[ActionName("Authenticate")]
[AllowAnonymous]
public String Authenticate(string user, string password)
{
if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(password))
{
return "Failed";
}
var userIdentity = UserManager.FindAsync(user, password).Result;
if (userIdentity != null)
{
if (User.Identity.IsAuthenticated)
{
return "Already authenticated!";
}
var identity = new ClaimsIdentity(Startup.OAuthBearerOptions.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, user));
identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, userIdentity.Id));
AuthenticationTicket ticket = new AuthenticationTicket(identity, new AuthenticationProperties());
var currentUtc = new SystemClock().UtcNow;
ticket.Properties.IssuedUtc = currentUtc;
ticket.Properties.ExpiresUtc = currentUtc.Add(TimeSpan.FromMinutes(1));
string AccessToken = Startup.OAuthBearerOptions.AccessTokenFormat.Protect(ticket);
return AccessToken;
}
return "Failed in the end";
}
hier für OAuth-Träger funktioniert, ist der Code für Startup.Auth.cs
//This will used the HTTP header Authorization: "Bearer 1234123412341234asdfasdfasdfasdf"
OAuthBearerOptions = new OAuthBearerAuthenticationOptions();
app.UseOAuthBearerAuthentication(OAuthBearerOptions);
ich auf den Quellcode ausgesehen haben für ClaimsIdentity und AuthenticationTicket und ich sehe nicht, wie das Ticket für die Identität registriert ist.
Meine Frage ist, wie wurde dieses Ticket mit der Owin-Pipeline registriert?
Mein Ziel ist es, dieses Ticket wenn möglich zu widerrufen.
Vielen Dank im Voraus.
Vielen Dank für Ihre Antwort. Ja, ich habe Taiseers Tutorial studiert und es ist sehr gut. Der Code, den ich gepostet habe, funktioniert genauso gut. Was würde ich gerne wissen, wenn es eine Möglichkeit für mich gibt, das Ticket zu widerrufen? – superfly71
@ superfly71 Ich habe den Beitrag aktualisiert. Ich denke, Sie müssen Refresh-Token implementieren, um das zu erreichen, was Sie wollen. – BBauer42
Ich nahm tatsächlich einen Blacklist-Ansatz an, wie in dem von Ihnen angegebenen Link erwähnt. Ich habe nur auf einen besseren Ansatz gehofft. Trotzdem danke! – superfly71