ASP.NET 5 Web API支持社交登录、个人帐户、帐户管理、授权屏幕和ASP.NET身份。它存在吗?
本质上,这是对近两年前的更新,由@Pinpoint ofASP.NET 5 Web API支持社交登录、个人帐户、帐户管理、授权屏幕和ASP.NET身份。它存在吗?,.net,rest,oauth-2.0,asp.net-core,access-token,.net,Rest,Oauth 2.0,Asp.net Core,Access Token,本质上,这是对近两年前的更新,由@Pinpoint ofAspNet.Security.OpenIdConnect.Serverfame给出了非常有用的回答 我将把所有那些喜欢沉迷于凌晨4点对一个沮丧的开发人员的亵渎的人的咆哮放在最下面 我正在开始一些新项目,出于我自己的原因,我想使用最新版本的ASP.NET技术(和MVC6)来开始 一种非常流行的现代应用程序体系结构 使用令牌保护RESTAPI 支持个人登录 支持社交登录 最新和最伟大的技术.NET的东西 ASP.NET 5(…) ASP
AspNet.Security.OpenIdConnect.Server
fame给出了非常有用的回答
我将把所有那些喜欢沉迷于凌晨4点对一个沮丧的开发人员的亵渎的人的咆哮放在最下面
我正在开始一些新项目,出于我自己的原因,我想使用最新版本的ASP.NET技术(和MVC6)来开始
一种非常流行的现代应用程序体系结构
- 使用令牌保护RESTAPI
- 支持个人登录
- 支持社交登录
- ASP.NET 5(…)
- ASP.NET标识(及其所有和)
- MVC6
Authorize
属性联系起来
我的实际问题也是如此。
在这个波涛汹涌、风大、吓人的互联网上,有没有一个样本可以证明以下几点:
- 基于ASP.NET 5/MVC 6的REST API,使用ASP.NET Identity和OAuth2进行保护,使用
为社交登录或个人登录愉快地创建帐户和提供代币,使用可爱的ASP.NET Identity用户商店保持物品整洁,密码恢复和一系列标准、现代的帐户内容,以及确认权限请求的授权屏幕(“XXX想访问您的帐户,可以吗?”等)AccountController
- (可选)客户端应用程序(我不在乎它是WPF、Cordova、AngularJS,是用汇编程序编写的还是在ZX81上运行的,可以自动进行测试),它支持登录REST API的社交和个人帐户,并像宝丽来一样获得一个漂亮的小标记
IdentityServer 3
一起使用。我不可能是唯一一个想要这种建筑的人,有人完成了吗
我觉得每次我来保护我的应用程序时,我都在发明一点轮子
咆哮
我已经离开授权部门一年多了,但我回来了,事情变了。这一切都与,,,相混淆。似乎只有(尽管非常优秀)的辅助项目完全支持基于.NET的安全令牌服务器。所谓“附带项目”,我的意思是对这些伟大的项目没有冒犯,只是没有微软和/或付费支持
我想开始一整套的开发工作,但在我无法想象的不受欢迎的体系结构中,身份验证的实现总是让我停滞不前
微软如此巧妙地考虑了这样一个标准的体系结构场景,这对我来说似乎太不可思议了
当我想在我的REST应用程序中实现登录时,我发现自己在一个混乱的、响亮的交火信息管弦乐队中倒立着
如果有人想启动一个维护的开源模板解决方案,请告诉我。我厌倦了开始构建REST,基于令牌的应用程序对于基本标准的东西来说太复杂了
在这个波涛汹涌、风大、吓人的互联网上,有没有一个样本可以证明以下几点:
基于ASP.NET 5/MVC 6的REST API,由ASP.NET Identity和OAuth2保护,AccountController愉快地创建帐户并为社交登录或个人登录提供代币,可爱的ASP.NET Identity用户存储保持整洁,密码恢复和一系列标准、现代的帐户内容,以及确认权限请求的授权屏幕(“XXX想访问您的帐户,可以吗?”等)
我目前正在开发一个全新的identity server,名为:它基于(ASP.NET 5附带的)并在内部用于控制整个OIDC流。它旨在提供开始令牌身份验证的最简单方法,并且与完整的.NET框架和新的.NET核心兼容
当然,它既不是由Microsoft开发的,也不是由Microsoft创建的(请随意建议他们支持我们),但它符合您的要求:它带有一个控制授权体验的内部控制器(即同意书部分)并依赖添加到应用程序中的AccountController
来处理本地/外部身份验证过程
它仍处于早期阶段,您需要ASP.NET 5/DNX RC2夜间版本来使用它,但它很容易配置。您只需从ConfigureServices
调用AddOpenIddict()
,然后从Configure
添加使用openiddict()
。你可以找到更多的信息
public void配置服务(IServiceCollection服务){
services.AddMvc();
services.AddEntityFramework()
.AddSqlServer()文件
.AddDbContext(选项=>
使用SQLServer(配置[“数据:默认连接:连接字符串]);
服务.额外性()
.AddEntityFrameworkStores()
.AddDefaultTokenProviders()
.AddOpenIddict();//注册标识后添加OpenIddict服务。
}
公共void配置(IApplicationBuilder应用程序){
app.UseIdentity();
//在注册OpenIddict之前添加您需要的所有外部提供程序:
app.UseGoogleAuthentication();
app.UseFacebookAuthentication();
app.UseOpenIddict();
}
谢谢@Pinpoint,我今天会好好看一看。它是否负责帐户管理,如密码重置等
public void ConfigureServices(IServiceCollection services) {
services.AddMvc();
services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(Configuration["Data:DefaultConnection:ConnectionString"]));
services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders()
.AddOpenIddict(); // Add the OpenIddict services after registering Identity.
}
public void Configure(IApplicationBuilder app) {
app.UseIdentity();
// Add all the external providers you need before registering OpenIddict:
app.UseGoogleAuthentication();
app.UseFacebookAuthentication();
app.UseOpenIddict();
}