asp.net5.0预览版为什么没有认证-webapi模板-我创建了一个Web项目。我可以选择asp.net4.6或5.0预览版webapi模板。旧的4.6有身份验证,但我想使用新的5.0预览版也可以访问webhttp://www.i。但是这个模板缺少认证,但是为什么呢?在OWIN世界中,您可以在需要时提供所需的身份验证。他是ASP.NET5世界的新范式。“你只提供你明确地说你需要的东西。如果你不要求它,你就不会得到它”。这只是这种心态的另一个例子。ScottGuthrie在他最近的帖子中称此为:ASP.NET5引入了模块化的新HTTP请求管道,因此您可以仅添加所需的组件。管道也不再依赖于System.Web。通过减少管道中的开销,您的应用程序可以体验更好的吞吐量和更优化的HTTP堆栈。新管道基于Katana项目的大量知识,也支持OWIN。要自定义管道中使用的组件,请使用Startup类中的Configure方法。Configure方法用于指定要在请求管道中“使用”的中间件。ASP.NET5已经包括Katana项目中许多中间件的移植版本,例如用于静态文件、身份验证和诊断的中间件。下图显示了可以在项目中添加或删除管道的一些功能。您可以非常快速地插入安全性;您只需要指定要使用的内容。publicvoidConfigure(IApplicationBuilderapp){//将静态文件添加到请求管道。app.UseStaticFiles();//将基于cookie的身份验证添加到请求管道。应用程序。使用身份();//在请求中添加MVC和路由pipeline.app.UseMvc(routes=>{routes.MapRoute(name:"default",template:"{controller}/{action}/{id?}",defaults:new{controller="Home",action="Index"});});他们故意保留它,因为这不再是ASP.NET构建的方式。这是一个完全重写,不再依赖于System.Web,而System.Web以前是安全模板工作所必需的。该框架采用了他们从OWIN中学到的知识并加以整合。ASP.NET5框架是新一代的OWIN。但是中间件添加的完全一样。以前的OWIN中间件库应该在ASP.NET5中工作。@Pascal@DavidL的意思是,在您的Web应用程序的管道中,您将身份验证添加为中间件。您可以将此作为IAppBuilder上的扩展方法来执行。首先,您需要在project.json文件中添加身份验证库作为依赖项:"dependencies":{"Microsoft.AspNet.Server.IIS":"1.0.0-beta4","Microsoft.AspNet.Server.WebListener":"1.0.0-beta4","Microsoft.AspNet.Mvc":"6.0.0-beta4","Microsoft.AspNet.Authentication.Cookies":"1.0.0-*",然后,你应该检查官方Microsoft在ASP.NETSecurityGitHub页面上查看这些行以获取示例:usingMicrosoft.AspNet.Authentication.Cookies;和:app.UseCookieAuthentication(options=>{options.AutomaticAuthentication=true;});app.Run(asynccontext=>{if(string.IsNullOrEmpty(context.User.Identity.Name)){varuser=newClaimsPrincipal(newClaimsIdentity(new[]{newClaim(ClaimTypes.Name,"bob")}));context.Authentication.SignIn(CookieAuthenticationDefaults.AuthenticationScheme,用户);context.Response.ContentType="text/plain";awaitcontext.Response.WriteAsync("HelloFirsttimer");return;}context.Response.ContentType="text/plain";awaitcontext.Response.WriteAsync("Hellooldtimer");});这应该在MVC6Web应用程序的app.UseM中在vc()之前我希望这会有所帮助:)当您在asp.net5中选择mvc项目模板时,它仍然是一个选项。所以只需使用mvc模板并在那里添加您的webapi控制器。无论如何,webapi和mvc在v5中使用相同的控制器。当然你可能想修改你的一些授权控制器来返回json而不是更适合webapi的视图。MS为准备asp.net5对身份系统做了很多更改,所以他们将其从模板中排除对我来说没有意义(至少作为一个选项-这一直是这样).我希望他们还没有更新模板。来自github自述文件:https://github.com/aspnet/IdentityASP.NETIdentity是用于构建ASP.NETWeb应用程序的新成员系统。ASP.NETIdentity允许您向应用程序添加登录功能并轻松自定义有关登录用户的数据。该项目是ASP.NETvNext的一部分。您可以在主页存储库中找到ASP.NETvNext的示例、文档和入门说明。以上就是C#学习教程:为什么没有asp.net5.0预览版认证-webapi模板-所有内容分享,如果对大家有用还需要详细了解C#学习教程,希望大家多多支持更多关注——本文来自网络收藏,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
