Asp.Net MVC:LinkedIn远程服务器返回错误:(401)未经授权

时间:2014-05-05 08:43:26

标签: asp.net-mvc linkedin

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 })); ;
    }
}

enter image description here 我收到这个错误:(401)未经授权(每当我从LinkedIn登录时)。但是,在facebook的情况下,它工作正常。请帮助我解决一些问题。

2 个答案:

答案 0 :(得分:1)

这可以帮助您确定问题的根源

使用此OAuth测试控制台,将您生成的标头与此工具生成的标头进行比较: https://developer.linkedin.com/oauth-test-console 如果您的标题错误,那么LinkedIn将返回401状态

答案 1 :(得分:0)

我遇到了同样的问题。所以我检查了两件事,为我解决了这个问题。

  1. 检查状态queryparam。它必须包含(如果您使用OAuthWebSecurity)" __ provider __ ="和" __ sid __ ="。 (?__提供商__ = LinkedIn&安培; __ SID __ = 987654321)

  2. 检查appId和appSecret。注意:由于OAuth2有两种"键" (appId和consumerKey不同)。秘密也一样。

  3. 如果您使用OAuth2,则appId和appSecret将为您效劳。否则对于OAuth(1),您必须选择consumerKey和consumerSecret。 (如果你尝试使用oauth2中的appId和consumerSecret你将得到401错误,它将不会工作)

    我希望这也能解决你的问题。