AuthConfig.cs
public static class AuthConfig
{
public static void RegisterAuth()
{
OAuthWebSecurity.RegisterLinkedInClient(
consumerKey: "xxxxxxxxxxx",
consumerSecret: "xxxxxxxxxx");
OAuthWebSecurity.RegisterFacebookClient(
appId: "xxxxxxxxxx",
appSecret: "xxxxxxxxxxxxxxxxxxxx");
}
}
帐户控制器ExternalLoginCallback方法
public class AccountController : Controller
{
[AllowAnonymous]
public ActionResult ExternalLoginCallback(string returnUrl)
{
AuthenticationResult result = OAuthWebSecurity.VerifyAuthentication(Url.Action("ExternalLoginCallback", new { ReturnUrl = returnUrl })); ;
}
}
我收到这个错误:(401)未经授权(每当我从LinkedIn登录时)。但是,在facebook的情况下,它工作正常。请帮助我解决一些问题。
答案 0 :(得分:1)
这可以帮助您确定问题的根源
使用此OAuth测试控制台,将您生成的标头与此工具生成的标头进行比较: https://developer.linkedin.com/oauth-test-console 如果您的标题错误,那么LinkedIn将返回401状态
答案 1 :(得分:0)
我遇到了同样的问题。所以我检查了两件事,为我解决了这个问题。
检查状态queryparam。它必须包含(如果您使用OAuthWebSecurity)" __ provider __ ="和" __ sid __ ="。 (?__提供商__ = LinkedIn&安培; __ SID __ = 987654321)
检查appId和appSecret。注意:由于OAuth2有两种"键" (appId和consumerKey不同)。秘密也一样。
如果您使用OAuth2,则appId和appSecret将为您效劳。否则对于OAuth(1),您必须选择consumerKey和consumerSecret。 (如果你尝试使用oauth2中的appId和consumerSecret你将得到401错误,它将不会工作)
我希望这也能解决你的问题。