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

Asp.net mvc Asp.Net MVC:LinkedIn远程服务器返回错误:(401)未经授权,asp.net-mvc,linkedin,Asp.net Mvc,Linkedin,AuthConfig.cs public static class AuthConfig { public static void RegisterAuth() { OAuthWebSecurity.RegisterLinkedInClient( consumerKey: "xxxxxxxxxxx", consumerSecret: "xxxxxxxxxx");

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,它工作正常。请帮助我解决一些问题。

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

使用此OAuth测试控制台并将您正在生成的头与此工具生成的头进行比较:
如果你的头是错误的,那么LinkedIn将返回401状态

我也有同样的问题。所以我检查了两件事,这帮我解决了问题

  • 正在检查状态查询参数。它必须包含(如果您使用OAuthWebSecurity)“\uuuuu provider\uuu=“和”\uuuuuu sid\uuuuu=“”。(?\uuuuu提供者\uuuuu=linkedin&\uuuuu sid\uuuuu=987654321)

  • 正在检查appId和appSecret。注意:由于OAuth2有两种“键”(appId和consumerKey是不同的)。秘密也一样

  • 如果使用OAuth2,则只有appId和appSecret适用于您。否则,对于OAuth(1),您必须选择consumerKey和ConsumerCret。(如果您尝试将oauth2中的appId与ConsumerCret一起使用,将无法工作,您将得到401错误)


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

    有同样的问题。。