gpt4 book ai didi

c# - 没有 Entity Framework 的 Asp.Net Owin 身份验证

转载 作者:太空狗 更新时间:2023-10-29 23:31:03 25 4
gpt4 key购买 nike

我有一个拥有 600,000 多个用户的现有网站,我选择的数据库是 RavenDb (NoSql)。

我目前正在使用一种简单的 Owin 身份验证形式,只需在我的登录 Controller 上调用它即可登录用户:

            var identity = new ClaimsIdentity(new[] {
new Claim(ClaimTypes.Sid, user.Id),
new Claim(ClaimTypes.Email, viewModel.EMail),
new Claim(ClaimTypes.NameIdentifier, user.ArtistName)
},
DefaultAuthenticationTypes.ApplicationCookie,
ClaimTypes.Sid, ClaimTypes.Role);

Authentication.SignIn(new AuthenticationProperties
{
IsPersistent = viewModel.RememberMe
}, identity);

现在我想允许我的用户使用外部提供商(如 facebook、google 等)登录,但如果不需要,我不想使用 UserManager 抽象。

要使它正常工作,我需要使用的最低限度是多少?我认为我需要编写 ExternalLoginCallback 代码等,但对此时我实际需要/不需要的内容感到很困惑。

最佳答案

您必须实现外部提供商向其发出 POST 请求的返回端点,然后在确定您信任 post 参数中的声明后,执行与您在原始登录中所做的相同的操作。

提供的实现有像 /signin-google 这样的方法作为返回 url,提供者使用一个名为 SecureAuthenticationToken 的 post 参数执行 POST,你必须解析然后信任(或不信任)。无需返回文档,它采用 json (JWT) 或 samlp 格式,具体取决于外部提供程序和协议(protocol)。

关于c# - 没有 Entity Framework 的 Asp.Net Owin 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25136841/

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