Tag: oauth

将OAuth 2与桌面c#应用程序一起使用

我之前从未使用oauth,所以我希望我的应用程序在系统的默认浏览器上打开一个URL,然后用户登录,授权等等,然后我需要将授权代码发送回我的应用程序,有没有办法做它? 我正在使用Trakt的API 。

Google通讯录API – 获取访问令牌(oauth)后

我设法为谷歌的联系人API获取访问令牌,但当我尝试拨打电话以检索登录用户的个人资料时,我收到401未经授权的错误… 我做了一些研究,并按照“各种”谷歌文档中提到的步骤(像这一个 , 这一个和许多其他),但没有用… 到目前为止,我认为我正在签署错误的请求。 这是我获得访问令牌后正在做的事情。 string outUrl,querystring; string sig = oAuth.GenerateSignature(new Uri(“https://www.google.com/m8/feeds/contacts/default/full”), Server.UrlEncode(oAuth.ConsumerKey), oAuth.ConsumerSecret, oAuth.Token, null, “GET”, timeStamp, nonce, out outUrl, out querystring); string reqURL = “https://www.google.com/m8/feeds/contacts/default/full?access_token=” + oAuth.Token + “&oauth_signature_method=HMAC-SHA1&oauth_signature=” + Server.UrlEncode(sig) + “&oauth_consumer_key=” + oAuth.ConsumerKey + “&oauth_timestamp=” + timeStamp + “&oauth_nonce=” + nonce + “&oauth_version=1.0”; response = oAuth.WebRequest(oAuthGoogle.Method.GET, reqURL, String.Empty); 使用oAuth.WebRequest()发送请求时出现401错误(上面代码的最后一行) 我只需要摆脱401错误……我正在使用ASP.NET […]

远程服务器返回错误:(401)未经授权。 Twitter oAuth

我正在尝试使用twitterizer与twitter oAuth合作,但我无法做到。 我收到以下错误: The remote server returned an error: (401) Unauthorized 。 当我的回调url是本地主机时。 如果我的回调url是oob,针对引脚流程它可以正常工作。 这是我的代码: public ActionResult LogOn(string returnUrl, bool? perm) { string consumerKeyTw = @”UF3F72XqfGShQs7juKMApA”; string consumerSecretTW = “secret”; OAuthTokenResponse requestToken = OAuthUtility.GetRequestToken(consumerKeyTw, consumerSecretTW, “http://localhost:58892/Twitterr/OAuth”); // Direct or instruct the user to the following address: Uri authorizationUri = OAuthUtility.BuildAuthorizationUri(requestToken.Token); return new RedirectResult(authorizationUri.ToString(), false); } […]

适用于Google,Yahoo!的OAuth C#Library 推特

我正在寻找一个允许我在ASP.NET / C#应用程序中使用OAuth的库,这样我就可以使用以下OAuth提供程序之一对用户进行身份validation 谷歌 雅虎 推特 我查看了各种开源库,发现存在一个或另一个问题(有些根本不起作用,有些针对一个服务而不是其他服务)。 我也看过OAuthDotNet,我必须承认,我发现它太复杂,无法弄清楚如何开始使用它,所以我没有真正尝试过。 所以基本上我正在寻找一个简单易用的库,它可以对抗上面提到的提供者(至少)。

OAuth承载令牌身份validation未通过签名validation

我在令牌使用者身上收到以下错误。 任何解决这个问题的帮助都将非常受欢迎。 谢谢。 “IDX10503:签名validation失败。 密钥尝试:’System.IdentityModel.Tokens.SymmetricSecurityKey’。 捕获到exception:’System.InvalidOperationException:IDX10636:SignatureProviderFactory.CreateForVerifying为key返回null:’System.IdentityModel.Tokens.SymmetricSecurityKey’,signatureAlgorithm:’ http : //www.w3.org/2001/04/xmldsig-more#hmac -sha256 ‘。 在System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(Byte [] encodedBytes,Byte []签名,SecurityKey密钥,字符串算法)的Microsoft.IdentityModel.Logging.LogHelper.Throw(String message,Type exceptionType,EventLevel logLevel,Exception innerException)在System.IdentityModel.Tokens.JwtSecurityTokenHandler.ValidateSignature(String token,TokenValidationParameters validationParameters)’。 令牌:’令牌信息在这里’“ OAuth服务器上的令牌生成代码 using (var ctlr = new EntityController()) { var authRepo = ctlr.GetAuthModelRepository(); string clientId; ticket.Properties.Dictionary.TryGetValue(WebConstants.OwinContextProps.OAuthClientIdPropertyKey, out clientId); if (string.IsNullOrWhiteSpace(clientId)) { throw new InvalidOperationException(“AuthenticationTicket.Properties does not include audience”); } //audience record var client = […]

如何解密Web API 2 JWT令牌?

我正在尝试使用OAuth bearer令牌Web API 2供应,但我不知道如何解密它们或获取数据。 我真正想要做的是找到或写自己的这个Google工具的等效工具https://developers.google.com/wallet/digital/docs/jwtdecoder我从Web API获得的令牌。 Google工具允许您粘贴表示JWT令牌的文本字符串,然后将其拆分并取消对JSON内的JSON编码。 在Visual Studio 2013中,如果选择“新建ASP.NET项目”,然后选择具有单个用户帐户的Web API模板,则会获得包含令牌端点的示例项目。 如果您启动项目,则可以在内置的Web服务器上将请求“grant_type = password&username = joe&password = joe”发送到/ token,然后您将获得一个令牌: { “access_token”:”x3vHm40WUXBiMZi_3EmdmCWLLuv4fsgjsg4S5Ya8kppDY_-2ejn7qF5Y_nbQ0bYVIKl6MNzL2GtXv-MAuwjippAAv5VDaxoKdxEVxeFrQ_eXsKNaQK7IvmVs1rIZ9eeRfRGK2AQ59wWQcyTtYO0dPJx9K7PGrSKz4ADAZ9SEZqQ4IesVhYbRCwToyxoyU5L9qdU8jXdHumkIrULRQhf68rIaBrEA_Be-V0rzWJ644fRLvv3z69XoHs3Az7PineILyNwbDck9uU2jkaXnwxoCTa4qlK8bR-lEI9-VXPNdbCvfgb5H9wfYsJcw2CMzNxNhV8v9YVZEt90evylwtTCEpXq4T3zRCQvrpbCvZrXqJ8uvlFeqCsvvhlIkSfPhBY8nm2ocWtBGPZm58zLe5FMi1jept0B54U38ZxkZlrGQKar47jkmnc6gpLrkpDBp7cWz”, “token_type”:”bearer”, “expires_in”:1209599, “userName”:”joe”, “.issued”:”Fri, 01 Aug 2014 16:16:02 GMT”, “.expires”:”Fri, 15 Aug 2014 16:16:02 GMT” } 我想知道的是access_token所处的格式以及包含的信息。 我发现的一个线索是:您可以通过在Startup.Auth.cs中设置OAuthAuthorizationServerOptions.AccessTokenFormat属性来选择Web API使用的令牌类型。 OAuthAuthorizationServerOptions的文档说: “用于保护访问令牌中包含的信息的数据格式。如果应用程序未提供,则默认数据保护提供程序依赖于主机服务器.ISO上的SystemWeb主机将使用ASP.NET机器密钥数据保护,以及HttpListener和其他自托管服务器将使用DPAPI数据保护。如果分配了不同的访问令牌提供程序或格式,则必须将兼容实例分配给资源服务器的OAuthBearerAuthenticationOptions.AccessTokenProvider或OAuthBearerAuthenticationOptions.AccessTokenFormat属性。 所以它可能使用MachineKey进行编码。 没关系,我可以设置机器密钥,但如果我知道创建了令牌的机器密钥,我该如何解密呢?

在没有第三方库的情况下设置Twitter OAuth

继续获取Twitter公共时间线,json + C#,没有第三方库 我还是C#和oAuth的新手,所以如果我什么都不懂,请耐心等待 我创建了一个名为oAuthClass的C#类,这些是我目前拥有的变量: static class oAuthClass { public static void run() { int oauth_timestamp = GetTimestamp(DateTime.Now); string oauth_nonce = PseudoRandomStringUsingGUID(); string oauth_consumer_key = “consumer key here”; string oauth_signature_method = “HMAC-SHA1”; string oauth_version = “1.0”; } } 我已经阅读了OAuth签名,我现在选择使用HMAC-SHA1,我不知道如何生成签名,在阅读和查看HTTP-Encodings和Base-Strings等内容后,我也非常困惑还有什么(我根本不知道它们的意思),但我的想法是创建一个“Http-encoded”的URL,就像空格 – >“%20”一样? 总结: – 什么是基本字符串? – 我在空间 – >%20例子吗? -HMAC-SHA1涉及消息和密钥,是消费者秘密的消息吗? 消费者关键是关键吗? – 如何通过使用HMAC-SHA1算法创建签名 – 如果我设法创建签名,我如何将这些值传递给Twitter? 我可以用 […]

Etsy oauth认证c#RestSharp

我正在尝试在他们的文档中给出样本授权请求(或任何需要身份validation的Etsy的api)。 我得到的响应是“oauth_problem = token_rejected”。 我使用了这个SO答案以及benSharper链接到的OAuth基础 。 我看过这个 ,以及其他人。 其中一个使用https://sandbox.https://openapi.etsy.com/v2 ,当我尝试这个时,exception是“底层连接已关闭:无法建立SSL / TLS安全通道的信任关系。 “ 我部署到我的服务器(这是https),仍然是相同的响应。 似乎无法让它发挥作用。 我错过了什么? 这是我的代码: public class AuthorizedRequestHelper { string baseUrl = “https://openapi.etsy.com/v2”; string relativePath = “/oauth/scopes”; string oauth_consumer_key = “xxx”; string consumerSecret = “xxx”; string oauth_token = “xxx”; string oauth_token_secret = “xxx”; public void test() { var restClient = new RestClient(baseUrl); OAuthBase […]

如何生成OAuth 2客户端ID和密钥

我想使用.NET生成客户端ID和客户端密钥。 我阅读了OAuth 2规范,例如,那里没有指定客户端密钥的大小。 使用.NET框架生成客户端ID和客户端密钥是否有良好的做法?

Twitter API + OAuth:无法发送状态更新,获得401

我正在尝试使用Twitter的API和OAuth来发送状态更新(新推文)。 我正在使用Shannon Whitley .NET代码示例http://www.voiceoftech.com/swhitley/?p=681 (根据Twitter API文档推荐)。 我可以使用OAuth读取(GET),但是当我尝试通过http://twitter.com/statuses/update.xml(使用POST)发送状态更新时,它会返回一个包含以下XML的401: /statuses/update.xml Read-only application cannot POST 我发誓我已经设置了我的应用程序来使用读写,Twitter上的授权页面(http://twitter.com/oauth/authorize)甚至说“应用程序TweeVerbs.com(开发)”希望能够访问并在Twitter上更新您的数据。“ 然而它仍然说“只读应用程序不能POST”。 WTF!? 我用谷歌搜索了这个错误信息,直到我脸色发青。 我找到了一个地方,说要添加查询字符串paremeter oauth_access_type =写入重定向URL,该URL进入我已经完成的Twitter授权页面,但它仍然给了我401。 如果有帮助,这里是根据OAuth工作流程发送回来的数据: 请求授权令牌: http://twitter.com/oauth/request_token?oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q&oauth_nonce = 2790042&oauth_signature_method = HMAC-SHA1&oauth_timestamp = 1244567068&oauth_version = 1.0&oauth_signature = KzxcXN%2bQ0AJoAJ%2flQfzs8SLjC%2fQ%3d 生成的授权重定向URL: http://twitter.com/oauth/authorize?oauth_token = EpyBg3nJGOmtmBjRAAsqqaGHARb2F2F2VcccqHkwio&oauth_access_type = write 授权屏幕消息: “应用程序TweeVerbs.com(开发)希望能够在Twitter上访问和更新您的数据。此应用程序计划在将来使用Twitter登录您。如果您想连接到一个,请注销Sironfoot以外的帐户。“ 获取访问令牌: HTTP://twitter.com/oauth/access_token oauth_consumer_key = tViV8vAt4cqSKbGdPGWT7Q&oauth_nonce = 2016804&oauth_signature_method = HMAC-SHA1&oauth_timestamp = 1244567166&组oauth_token = EpyBg3nJGOmtmBjRUAsqqaGHARb2F2F2VcccqHkwio&oauth_version […]