Welche Funktion verwendet OWIN genau, um ein Token zu generieren? Kann es genutzt werden?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Welche Funktion verwendet OWIN genau, um ein Token zu generieren? Kann es genutzt werden?

Post by Anonymous »

Ich kann sehen, wie Token mit dem folgenden Code generiert werden können
wie in
https://bitoftech.net/2014/06/01/token- ... -identity/
beschrieben

Code: Select all

OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new SimpleAuthorizationServerProvider()
};

// Token Generation
app.UseOAuthAuthorizationServer(OAuthServerOptions);

var bearerAuth = new OAuthBearerAuthenticationOptions()
{
Provider = new OAuthBearerAuthenticationProvider()
};

app.UseOAuthBearerAuthentication(bearerAuth);

public class SimpleAuthorizationServerProvider : OAuthAuthorizationServerProvider
{
public override async Task ValidateClientAuthentication(OAuthValidateClientAuthenticationContext context)
{
context.Validated();
}

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

var manager = new UserManager(new UserStore(new UserRepository()));
var user = await manager.FindAsync(context.UserName, context.Password);

if (user == null)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
}
else
{
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim("name",user.Email));
context.Validated(identity);
}
}
}
Als Verbraucher mache ich mit meinen Anmeldeinformationen einen REST-Aufruf an http://localhost:9000/token und erhalte auf magische Weise ein Zugriffstoken.
Ich möchte diese Token-Generierungsfunktion gerne für die Verwendung in anderen Szenarien nutzen, um manuell ein Token zu erstellen, das für **diesen bestimmten** OWIN-Server gültig wäre.
Zweitens: Ist das möglich? verfügen über mehrere Autorisierungsanbieter, die von diesem Server bedingt verwendet werden können. Wenn ja, wie macht man das, ohne einen Token-Generator von Grund auf zu implementieren (wie das externe Login-Zeug)?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post