gpt4 book ai didi

asp.net-mvc - app.UseOAuthBearerTokens 与 ASP.NET Identity 2.0 的 DbContext 中间件?

转载 作者:行者123 更新时间:2023-12-04 16:29:19 25 4
gpt4 key购买 nike

编辑:进步之后,我可以缩小问题的范围:

应该对 VS2013 SPA 模板(使用 ASP.NET identity 1.0)中的 startup.auth.cs 和 ApplicationOAuthProvider.cs 进行哪些更改才能将其迁移为使用 ASP.NET identity 2.0?

编辑 2:我进一步简化了这个问题。如何将 app.UseOAuthBearerTokens 与 ASP.NET Identity 2.0 的中间件结合使用来检索 DbContext?

        app.UseOAuthBearerTokens(new Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerOptions()
{
//What goes here??
});

(可用示例中没有这方面的示例。)

Asp.net身份框架从V1.0到V2.0alpha有显着差异。有一个示例显示如何使用 V2:

https://aspnet.codeplex.com/SourceControl/latest(参见样本->身份->ChangePK)

但该示例不是 MVC 或 SPA。话虽这么说,我有一个应用程序是从 VS2013 ASP.NET SPA 应用程序(包含 Identity 1.0)构建的。我一直在尝试在我的 MVC 应用程序中实现示例中的代码,但我不清楚 VS2013 SPA 模板中的哪些代码被删除以支持示例中的代码。

换个方式问,有人有关于在 ASP.NET MVC 应用程序中实现 ASP.NET identity 2.0 alpha 的指南吗? (理想情况下,具有从利用身份 1.0 的 VS2013 MVC SPA 模板迁移的步骤)

最佳答案

如果您正在寻找如何为 WEBAPI 和 MVC Cookie 身份验证实现 Bearer token ,请查看这篇文章:

ASP.NET Identity 2.0 Cookie & Token Authentication including a sample project.

简单地说,此解决方案使用 OWIN 中间件组件 UseOAuthBearerAuthenticationUseCookieAuthentication(我知道 Cookie 身份验证不是问题的一部分,但与 MVC 项目非常相关)来支持基于浏览器的身份验证和 WEBAPI 分别通过 CookiesTokens 请求身份验证。

启动.Auth.cs

OAuthBearerOptions = new OAuthBearerAuthenticationOptions();

//This will used the HTTP header: "Authorization" Value: "Bearer 1234123412341234asdfasdfasdfasdf"
app.UseOAuthBearerAuthentication(OAuthBearerOptions);
// Enable the application to use a cookie to store information for the signed in user
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login")
});

HostAuthenticationFilter 表示通过 OWIN 中间件进行身份验证的身份验证过滤器:

WebApiConfig.cs

config.SuppressDefaultHostAuthentication();
//This will used the HTTP header: "Authorization" Value: "Bearer 1234123412341234asdfasdfasdfasdf"
config.Filters.Add(new HostAuthenticationFilter("Bearer"));

生成 token :

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(30));
string AccessToken = Startup.OAuthBearerOptions.AccessTokenFormat.Protect(ticket);
return AccessToken;

关于asp.net-mvc - app.UseOAuthBearerTokens 与 ASP.NET Identity 2.0 的 DbContext 中间件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21077447/

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