Я использую код Microsoft.Owin для генерации токенов. Пользователь может получить токен с именем пользователя и паролем после проверки. Я хочу, чтобы в запросе пользователь передавал тот же токен в json запросе. Я не хочу использовать [Авторизовать] . Есть ли шанс получить сгенерированный токен. Ниже мой код.
public void ConfigureOAuth(IAppBuilder app)
{
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/token"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(7),
Provider = new CustomAuthorizationServerProvider()
};
// Token Generation
app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions());
}
public class CustomAuthorizationServerProvider : 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[] { "*" });
AuthRepository authRepository = new AuthRepository();
bool isValid = authRepository.ValidateUser(context.UserName, context.Password);
if (!isValid)
{
context.SetError("invalid_grant", "The user name or password is incorrect.");
return;
}
var identity = new ClaimsIdentity(context.Options.AuthenticationType);
identity.AddClaim(new Claim(ClaimTypes.Name, context.UserName));
//identity.AddClaim(new Claim(ClaimTypes.Role, "User"));
//var ticket = new AuthenticationTicket(identity, new AuthenticationProperties());
//context.Validated(ticket);
context.Validated(identity);
}