加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET OWIN自定义Cookie身份验证

发布时间:2020-12-16 07:42:04 所属栏目:asp.Net 来源:网络整理
导读:我们正在运行一个经典的asp web应用程序,并希望它与新开发的MVC应用程序一起工作.我们希望在MVC应用程序中使用经典asp应用程序的身份验证. 这个想法是当用户登录经典的asp应用程序时,它将发出一种auth cookie,cookie是用我们自己的方法加密的. Cookie将包含
我们正在运行一个经典的asp web应用程序,并希望它与新开发的MVC应用程序一起工作.我们希望在MVC应用程序中使用经典asp应用程序的身份验证.

这个想法是当用户登录经典的asp应用程序时,它将发出一种auth cookie,cookie是用我们自己的方法加密的. Cookie将包含使用标识.

客户端然后浏览到MVC应用程序以及此身份验证cookie. MVC应用程序将检查cookie是否存在并验证它.它不会重定向到经典的asp登录页面.

所以我想自定义OWIN cookie身份验证以使用我自己的身份验证逻辑.我试图实现CookieAuthenicationProvider,但我不知道在哪里放我的逻辑.

app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,LoginPath = new PathString("/Account/Login"),CookieName = ".classicauth",CookieSecure = CookieSecureOption.SameAsRequest,CookieHttpOnly = true,Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = context => {
                    //?? where I can extract the cookie and validate it??
                    context.RejectIdentity();
                    return Task.FromResult<int>(0);
                },OnApplyRedirect = context => {
                    context.Response.Redirect("classic_asp_login_url");
                }
            }
        });

CookieAuthenticationProvider具有OnValidateIdentity,但它似乎不是提取cookie并验证它的正确位置.

谢谢.
杰森.

解决方法

我没有在特定的背景下测试自己.但CookieManager适合我.

OnValidateIdentity = context => {
  var cookie = context.Options.CookieManager.GetRequestCookie(context.OwinContext,context.Options.CookieName);
  context.RejectIdentity();
  return Task.FromResult<int>(0);
},

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读