2013-01-23 96 views
4

嗨我試圖讓我的網站用戶能夠使用twitter登錄。我想用localhost註冊我的應用程序,以便我可以測試。由於Twitter不接受,我改變了網址爲127.0.0.1我也嘗試添加portnumber。我在AuthConfig文件中輸入了我的祕密。當我點擊Twitter的按鈕,我得到的錯誤無法通過twitter使用dotnetopenauth進行身份驗證

The remote server returned an error: (401) Unauthorized.

然後我開始跑我在IIS上的應用程序來解決,我的網站不能與我的Windows登錄的問題Live帳戶(即排序時問題)但我仍然得到這個未經授權的錯誤。有人請幫忙。

謝謝

+1

我與此項目無關,但它看起來像DotNetOpenAuth([WorldDomination.Web.Authentication](https://github.com/PureKrome/) WorldDomination.Web.Authentication)) –

+0

另外,爲了回答你的問題,我們需要'seez teh codez'。 –

+0

這是不是任何代碼...以及身份驗證配置中的2行OAuthWebSecurity.RegisterTwitterClient – David

回答

4

我有完全相同的問題,不能用DotNetOpenAuth解決它,不管是我的嘗試。當使用DotNetOpenAuth時,Twitter的身份驗證過程要比Facebook或Google+更難獲取。經過許多令人沮喪的時間,加密和編碼數據的各個部分的次數不盡相同,並且始終使無用的401未經授權,我將Tweetsharp添加到混合中,並創建了我自己的IAuthenticationClient進行Twitter身份驗證。使用Tweetsharp進行身份驗證非常簡單。它成爲這個相對小事:

在你TwitterClient構造:

var twitterService = new TwitterService(consumerKey, consumerSecret); 

在你執行IAuthenticationClient

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); 
} 
+1

努力的回​​報 – David

4

嗨事實證明,這是一個配置的問題。我需要指定一個回調url。我將它設置爲與我的網站相同

+0

您能分享您的代碼嗎?我正在指定回調URL,仍然得到{「遠程服務器返回一個錯誤:(401)未經授權。」} – leen3o

+0

@ leen3o您好,我沒有代碼來分享您創建mvc項目時獲得的標準內容。我建議你更新你的參考資料,使用nuget幫助我,當我第一次抨擊牆壁 – David

相關問題