Какую именно функцию OWIN использует для генерации токена; Можно ли это использовать?C#

Место общения программистов C#
Ответить
Anonymous
 Какую именно функцию OWIN использует для генерации токена; Можно ли это использовать?

Сообщение Anonymous »

Я вижу способ создания токенов с использованием следующего кода
как описано в
https://bitoftech.net/2014/06/01/token- ... -identity/

Код: Выделить всё

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);
}
}
}
Как потребитель я делаю REST-вызов http://localhost:9000/token со своими учетными данными и волшебным образом получаю токен доступа.
Я хотел бы иметь возможность использовать эту функцию генерации токена для использования в других сценариях, чтобы вручную создавать токен, который будет действителен для **этого конкретного** сервера OWIN.
Во-вторых, возможно ли иметь несколько провайдеры авторизации, которые могут условно использоваться этим сервером. Если да, то как это сделать, не реализуя генератор токенов с нуля (например, внешний вход в систему)?

Подробнее здесь: https://stackoverflow.com/questions/395 ... -leveraged
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»