无法使用dotnetopenauth对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帐户登录的问题(这解决了该问题),但我仍然收到此未经授权的错误。有人请帮忙 谢谢

嗨,我正试图让我的网站的用户能够登录twitter。我想向localhost注册我的应用程序,以便进行测试。由于twitter不接受这一点,我将url更改为127.0.0.1,并尝试添加端口号。我在AuthConfig文件中输入了我的秘密。当我点击twitter按钮时,我得到了错误信息

远程服务器返回错误:(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来帮助我