无法使用dotnetopenauth对twitter进行身份验证
嗨,我正试图让我的网站的用户能够登录twitter。我想向localhost注册我的应用程序,以便进行测试。由于twitter不接受这一点,我将url更改为127.0.0.1,并尝试添加端口号。我在AuthConfig文件中输入了我的秘密。当我点击twitter按钮时,我得到了错误信息无法使用dotnetopenauth对twitter进行身份验证,twitter,asp.net-mvc-4,dotnetopenauth,Twitter,Asp.net Mvc 4,Dotnetopenauth,嗨,我正试图让我的网站的用户能够登录twitter。我想向localhost注册我的应用程序,以便进行测试。由于twitter不接受这一点,我将url更改为127.0.0.1,并尝试添加端口号。我在AuthConfig文件中输入了我的秘密。当我点击twitter按钮时,我得到了错误信息 远程服务器返回错误:(401)未经授权。 然后,我开始在iis上运行我的应用程序,以修复我的网站无法使用我的windows live帐户登录的问题(这解决了该问题),但我仍然收到此未经授权的错误。有人请帮忙 谢谢
远程服务器返回错误:(401)未经授权。
然后,我开始在iis上运行我的应用程序,以修复我的网站无法使用我的windows live帐户登录的问题(这解决了该问题),但我仍然收到此未经授权的错误。有人请帮忙
谢谢我遇到了完全相同的问题,无论我怎么尝试,都无法用
DotNetOpenAuth解决它。当使用DotNetOpenAuth
时,Twitter的身份验证过程比Facebook或Google+要难得多。在经历了许多令人沮丧的小时后,我对数据的各个部分进行了多次加密和编码,并且总是未经授权就获得了毫无帮助的401,我将其添加到混合中,并创建了自己的用于Twitter身份验证的iaAuthenticationClient
。使用Tweetsharp
执行身份验证非常简单。这是一个相对琐碎的问题:
在您的TwitterClient
构造函数中:
var twitterService = new TwitterService(consumerKey, consumerSecret);
在IAAuthenticationClient
的实现中:
public void RequestAuthentication(HttpContextBase context, Uri returnUrl)
{
var requestToken = twitterService.GetRequestToken(returnUrl.AbsoluteUri);
var redirectUrl = twitterService.GetAuthorizationUri(requestToken).AbsoluteUri;
context.Response.Redirect(redirectUrl, true);
}
public AuthenticationResult VerifyAuthentication(HttpContextBase context)
{
var oAuthToken = context.Request.QueryString["oauth_token"];
var oAuthVerifier = context.Request.QueryString["oauth_verifier"];
var requestToken = new OAuthRequestToken { Token = oAuthToken };
var accessToken = twitterService.GetAccessToken(requestToken, oAuthVerifier);
twitterService.AuthenticateWith(accessToken.Token, accessToken.TokenSecret);
var user = twitterService.VerifyCredentials();
var userId = user.Id.ToString();
var extraData = new Dictionary<string, string>
{
{"accesstoken", accessToken.Token},
{"accesstokensecret", accessToken.TokenSecret},
{"id", userId},
{"name", user.Name},
{"username", user.ScreenName},
{"link", user.Url},
};
return new AuthenticationResult(true, ProviderName, userId, user.ScreenName, extraData);
}
public void RequestAuthentication(HttpContextBase上下文,Uri returnUrl)
{
var requestToken=twitterService.GetRequestToken(returnUrl.AbsoluteUri);
var redirectUrl=twitterService.GetAuthorizationUri(requestToken).AbsoluteUri;
Redirect(redirectUrl,true);
}
公共身份验证结果验证身份验证(HttpContextBase上下文)
{
var oAuthToken=context.Request.QueryString[“oauth_令牌”];
var oAuthVerifier=context.Request.QueryString[“oauth_verifier”];
var requestToken=new OAuthRequestToken{Token=oAuthToken};
var accessToken=twitterService.GetAccessToken(requestToken,oAuthVerifier);
AuthenticateWith(accessToken.Token,accessToken.TokenSecret);
var user=twitterService.VerifyCredentials();
var userId=user.Id.ToString();
var extraData=新字典
{
{“accesstoken”,accesstoken.Token},
{“accesstokensecret”,accessToken.TokenSecret},
{“id”,userId},
{“name”,user.name},
{“用户名”,user.ScreenName},
{“link”,user.Url},
};
返回新的AuthenticationResult(true、ProviderName、userId、user.ScreenName、extraData);
}
嗨,原来这是一个配置问题。我需要指定一个回调url。我将其设置为与我的网站相同我与此项目无关,但它看起来像是DotNetOpenAuth()的一个不错的替代品,也可以回答您的问题,我们需要seez-teh-codez
。没有任何代码…身份验证配置OAuthWebSecurity.RegisterWitterClient中有两行代码。您可以共享您的代码吗?我正在指定回调url,但仍然得到{“远程服务器返回了一个错误:(401)未经授权。”}@leen3o Hi我没有代码来共享它,这是创建mvc项目时得到的标准内容。我建议你更新你的参考资料,当我第一次撞到墙上时,你可以使用nuget来帮助我