asp.net-mvc-4 – 在MVC4中调用DotNetOpenAuth Twitter API版本1
我正在编写一个MVC4 Web应用程序,它必须查询Twitter Version 1.1 API.内置于MVC4中,当我在AuthConfig.cs中激活OAuthWebSecurity.RegisterTwitterClient时,我可以使用“使用Twitter登录”功能.然后,这会对Twitter登录进行身份验证,但我想要做的是授权用户,以便我可以代表用户进行API v1.1调用.
我在Stack Overflow上找到了this post,它使用自定义类来解决不同的问题(force_login参数问题),但是我使用了这些类并将UserAuthorizationEndpoint更改为指向oauth / authorize.我更改了这行代码: UserAuthorizationEndpoint = new MessageReceivingEndpoint("https://api.twitter.com/oauth/authenticate",HttpDeliveryMethods.GetRequest | HttpDeliveryMethods.AuthorizationHeaderRequest), 对此: UserAuthorizationEndpoint = new MessageReceivingEndpoint("https://api.twitter.com/oauth/authorize", 它适用于授权,这意味着现在我的应用程序授权Twitter用户.但是,当我调用API v1.1时,我收到'(401)Unauthorized’错误.这是我用于通话的代码: var var1 = WebWorker.PrepareAuthorizedRequest(new MessageReceivingEndpoint("https://api.twitter.com/1.1/followers/ids.json?cursor=-1&screen_name=sitestreams",HttpDeliveryMethods.GetRequest),accessToken); var var2 = var1.GetResponse(); 我想我也需要oauth_token_secret来授权这个电话. 我还在Stack Overflow上找到了this post,它说我不能使用DotNetOpenAuth.但是,DotNetOpenAuth代码已经更新了,我想知道它现在是否适合我想要做的事情,这本质上是一件非常简单的事情:允许用户使用Twitter登录我的Web应用程序,然后允许我的Web应用程序,以查看用户的关注者. 所以归结为:我可以在MVC4中使用DotNetOpenAuth来授权用户,然后代表用户调用Twitter API v1.1,例如GET粉丝/ ids.如果可能,我该怎么办? 解决方法
是的,DotNetOpenAuth绝对可以用于此.您可以下载包含OAuthConsumer项目的
DotNetOpenAuth samples,其中包含一个Twitter.aspx页面,该页面显示了如何执行此操作.是的,它是Web表单而不是MVC,但翻译起来并不难.
您遇到问题的原因是因为您尝试在DotNetOpenAuth.AspNet命名空间中使用Microsoft提供的类,这些类是专门为身份验证而非授权而设计的.使用样本中的WebConsumer / TwitterConsumer类将允许您执行您要求的操作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- [译]ASP.NET Core 2.0 路由引擎详解
- 在ASP.net中有一个后Page_Load事件
- asp.net – 改进MonoRail
- 对于单个控件,asp.net – ValidateRequest =“fa
- ASP.NET MVC6:以编程方式设置webroot
- asp.net – TableHeaderRow类的重点是什么
- asp.net-mvc-3 – MVC3页面 – IsPostback功能
- asp.net – Static WebMethod中的ResolveUrl
- asp.net-mvc – ASP.NET MVC是否容易受到oracle的
- asp.net-mvc – 登录MVC3中的Razor视图