我試圖創建一個應用程序,這將允許用戶登錄並加入一個組。在加入某個組併成功登錄該用戶時,將顯示特定於該組的項目列表。ASP MVC Twitter的授權
目前,我試圖使用Twitter作爲授權的手段,我有問題。我一直在尋找Twitterizer和TweetSharp整天沒有任何運氣,這個問題似乎是找到一些例子涉及到我使用的架構:ASP .NET MVC2,我似乎無法找出我將如何實現這個使用控制器等
謝謝,在此總新手授權功能。 Kev。
我試圖創建一個應用程序,這將允許用戶登錄並加入一個組。在加入某個組併成功登錄該用戶時,將顯示特定於該組的項目列表。ASP MVC Twitter的授權
目前,我試圖使用Twitter作爲授權的手段,我有問題。我一直在尋找Twitterizer和TweetSharp整天沒有任何運氣,這個問題似乎是找到一些例子涉及到我使用的架構:ASP .NET MVC2,我似乎無法找出我將如何實現這個使用控制器等
謝謝,在此總新手授權功能。 Kev。
你」我想創建一個自定義的MembershipProvider。下面是關於如何做一個很好的教程: http://www.asp.net/general/videos/how-do-i-create-a-custom-membership-provider
還有更多的細節比你在本教程所需要的,但基本上你需要做的就是創建一個從System.Web.Security.MembershipProvider
繼承一個新的類,並重寫ValidateUser
方法是什麼。在該方法中,您將從我以前的答案中調用Twitter登錄代碼,並在成功時返回true或false。您還需要修改web.config的<membership/>
部分,以告知ASP.NET在執行授權時使用您的自定義成員資格提供程序。
我已經與Twitterizer在ASP.NET MVC中實現這一點。
首先,你有一個登錄的行動,採取的是授權用戶和控制器上的用戶名和密碼保存令牌:
[HttpPost]
public ActionResult Login(string username, string password) {
OAuthTokenResponse tokens;
var consumerKey = ConfigurationManager.AppSettings["TwitterConsumerKey"];
var consumerSecretKey = ConfigurationManager.AppSettings["TwitterConsumerSecret"];
try {
tokens = XAuthUtility.GetAccessTokens(consumerKey, consumerSecretKey, username, password);
Session["AccessToken"] = tokens.Token;
Session["AccessTokenSecret"] = tokens.TokenSecret;
}
catch (ArgumentNullException) {
ViewData["message"] = "Username or password incorrect";
return View();
}
ViewData["message"] = "You are logged in to twitter as " + tokens.ScreenName;
return View();
}
然後你有一個PostMessage的用語,使郵件內容和帖子嘰嘰喳喳:
[HttpPost]
public ActionResult PostMessage(string message) {
// you should check to make sure the user is actually logged in by checking the session vars first
var tokens = new OAuthTokens
{
AccessToken = Session["AccessToken"],
AccessTokenSecret = Session["AccessTokenSecret"],
ConsumerKey = consumerKey,
ConsumerSecret = consumerSecretKey
};
var tweetResponse = TwitterStatus.Update(tokens, data.Message);
if (tweetResponse.Result == RequestResult.Success) {
ViewData["message"] = "Message posted!";
} else {
ViewData["message"] = "Error posting to twitter.";
}
return View();
}
此代碼並沒有進行測試,應該增加更多的錯誤檢查,但它應該讓你開始...
謝謝你的幫助! – Apollo 2011-03-16 16:25:10