Dou*_*ini 1 authentication asp.net-mvc linkedin oauth-2.0 asp.net-identity
我将我的ASP.NET MVC Web应用程序从成员身份转移到身份验证,因为我无法再在LinkedIn上进行身份验证.
Facebook身份验证仍然正常,但LinkedIn总是在GetExternalLoginInfo调用后返回null loginInfo.
对于LinkedIn我正在使用Owin LinkedIn提供程序:用于.NET的LinkedIn API.我也试图跟随杰里·佩尔泽的这篇文章不成功.
Application调用执行ExecuteResult方法的ExternalLogin Action并回调ExternalLoginCallback(在我允许访问应用程序之后).如前所述,方法AuthenticationManager.GetExternalLoginInfoAsync()始终返回null loginInfo.
我检查了LinkedIn中的应用程序设置,一切似乎都没问题.
行动!我差点忘了说LinkedIn正在返回带有一般错误消息的URL:"GET/Account/ExternalLoginCallback?error = access_denied HTTP/1.1"
我可以使用DotNetOpenAuth.Clients(托管的github)进行身份验证,但我想使用Identity.
Startup.Auth.cs
var linkedInOptions = new LinkedInAuthenticationOptions();
linkedInOptions.ClientId = "Xxxxx";
linkedInOptions.ClientSecret = "Yyyyyyy";
linkedInOptions.Scope.Add("r_fullprofile");
linkedInOptions.Provider = new LinkedInAuthenticationProvider()
{
OnAuthenticated = async context =>
{
context.Identity.AddClaim(new System.Security.Claims.Claim("LinkedIn_AccessToken", context.AccessToken));
}
};
linkedInOptions.SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie;
app.UseLinkedInAuthentication(linkedInOptions);
Run Code Online (Sandbox Code Playgroud)
ExternalLogin
public ActionResult ExternalLogin(string provider, string returnUrl)
{
// Request a redirect to the external login provider
return new ChallengeResult(provider, Url.Action("ExternalLoginCallback", "Account", new { ReturnUrl = returnUrl }));
}
Run Code Online (Sandbox Code Playgroud)
回复行动
var loginInfo = await AuthenticationManager.GetExternalLoginInfoAsync();
if (loginInfo == null)
{
return RedirectToAction("Login");
}
Run Code Online (Sandbox Code Playgroud)
LinkedIn CallBack URI
http://localhost:3279/signin-linkedin
Run Code Online (Sandbox Code Playgroud)
经过一些研究和访问NuGet包存储库后,我发现了一个像魅力一样工作的Owin.Security.Providers的预发布版本.我只需要从包管理器控制台安装它,并且LinkedIn外部登录的null返回问题已经消失.
Install-Package Owin.Security.Providers -Pre
Run Code Online (Sandbox Code Playgroud)
注意: 请注意使用预发布包可能会导致意外问题.
| 归档时间: |
|
| 查看次数: |
1646 次 |
| 最近记录: |