首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Web API编辑中使用ASP.NET 4Cookie:Core2.0

在Web API编辑中使用ASP.NET 4Cookie:Core2.0
EN

Stack Overflow用户
提问于 2017-08-29 21:50:35
回答 1查看 554关注 0票数 0

我正在向一个遗留的ASP.NET 4应用程序添加一个Angular应用程序和Web (编辑:Core2.0)。遗留应用程序使用窗体身份验证,这一点我无法更改。我希望Web API检测到用户已经登录,并设置声明等(或替代方案)来授权后续的Web API请求。

我试图读取Web API中的身份验证cookie,但无法解密它,我相信是因为ASP.NET Core2.0不理解ASP.NET 4 cookie加密。我已经尝试了机器密钥等的web配置设置,但没有成功。我在这里有什么选择?

EN

回答 1

Stack Overflow用户

发布于 2017-08-29 22:15:56

配置您的ASP.NET网站:

代码语言:javascript
运行
复制
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
    AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            CookieName = ".AspNetCore.ApplicationCookie",
            TicketDataFormat = new AspNetTicketDataFormat(
       new DataProtectorShim(
           DataProtectionProvider.Create(new DirectoryInfo(@"c:\shared-auth-ticket-keys\"))
           .CreateProtector("Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware", "Cookies", "v2"))),
            CookieManager = new ChunkingCookieManager(),
            LoginPath = new PathString("/Account/Login"),
            Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                    validateInterval: TimeSpan.FromMinutes(30),
                    regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            }
   });

然后您的核心2应用程序,它们应该使用相同的文件夹来共享身份验证票证和相同的身份验证方法:

代码语言:javascript
运行
复制
 public void ConfigureServices(IServiceCollection services)
 {
     services.AddCookieAuthentication(options => { 
        options.AuthenticationScheme = "Cookie",
        options.LoginPath = "/Account/Login";
        options.CookieName = ".AspNet.SharedCookie";
        options.AutomaticAuthenticate = true;
        options.AutomaticChallenge = true;
        options.TicketDataFormat = ew AspNetTicketDataFormat(
       new DataProtectorShim(
           DataProtectionProvider.Create(new DirectoryInfo(@"c:\shared-auth-ticket-keys\"))
           .CreateProtector("Microsoft.AspNetCore.Authentication.Cookies.CookieAuthenticationMiddleware",
           "Cookies", "v2")))
     });
 }

 public void Configure(IApplicationBuilder app)
 {
     app.UseAuthentication();
 }

文档:https://docs.microsoft.com/en-us/aspnet/core/security/authentication/cookie?tabs=aspnetcore2x

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45940907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档