gpt4 book ai didi

asp.net-web-api2 - WebAPI 2 创建自定义身份验证 token

转载 作者:行者123 更新时间:2023-12-01 14:40:49 32 4
gpt4 key购买 nike

我想创建 Custom Bearer Token,并在 token 中存储一些额外的信息。

只想使用创建 token 功能(类似于 FormsAuthentication),而不使用用户表的默认实现(ASP.NET 身份)。

1) 自定义登录方法 (MyLogin),它将创建带有附加信息(嵌入到 token 中的 IP 地址)的自定义不记名 token 。2)在随后的请求中,如果附加信息与某些规则不匹配,则能够检查附加信息并拒绝(将请求视为未验证)。 如果我收到承载 token 并发现请求来自不同的 IP 地址而不是嵌入其中的 IP 地址,请清除/使承载 token 无效并将当前请求视为未验证。

最佳答案

我绝不是专家,但这是我收集的信息。

使用 ASP.NET Identity 似乎相对简单。

您需要创建自己的 token 提供程序实现,它实现了 IAuthenticationTokenProvider界面。您实现创建方法,以便它按照您想要的方式创建 token ,然后您在配置身份验证中间件时提供您的提供商。

你的启动类中的配置看起来像这样:

public class Startup
{
public void Configuration(IAppBuilder app)
{
ConfigureOAuth(app);
//Rest of code is here;
}

public void ConfigureOAuth(IAppBuilder app)
{
OAuthAuthorizationServerOptions OAuthServerOptions = new OAuthAuthorizationServerOptions()
{
AllowInsecureHttp = true,
TokenEndpointPath = new PathString("/yourtokenendpoint"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
Provider = new SimpleAuthorizationServerProvider(),
AccessTokenProvider = new YourCustomTokenProvider() // YourCustomTokenProvider implements IAuthenticationTokenProvider
};

OAuthBearerAuthenticationOptions bearerOptions = new OAuthBearerAuthenticationOptions()
{
AccessTokenProvider = new YourCustomTokenProvider() // YourCustomTokenProvider implements IAuthenticationTokenProvider
}


// Token Generation
app.UseOAuthAuthorizationServer(OAuthServerOptions);
app.UseOAuthBearerAuthentication(bearerOptions);

}
}

我自己从来没有这样做过,但我希望这会有所帮助。

编辑:要验证 token ,您可以创建一个自定义操作过滤器来装饰您的 Controller 操作。在此操作过滤器中,您可以验证 token 并对请求执行任何您喜欢的操作。参见 this guide .

关于asp.net-web-api2 - WebAPI 2 创建自定义身份验证 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549024/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com