2011-09-11 266 views
0

任何人都可以提供示例或最新指南,瞭解如何創建同時使用表單身份驗證和Facebook登錄的.net 4.0 MVC頁面。Facebook C#身份驗證與表單

我想爲用戶提供使用那裏facebook登錄的選項,如果他們沒有帳戶,他們可以在我們的頁面上創建一個帳戶並使用此登錄。 (不想強制他們創建一個Facebook帳戶)。

我已經創建了一個MVC 3項目,添加了Facebook,Facebook.web,Facebook.Web.Mvc庫並且不知道如何繼續。添加登錄按鈕並將其與標準表單混合在asp.net中登錄。

回答

1

如果您使用的是forms authentication,則可以使用Facebook進行簡單登錄,並在登錄後使用用戶標識設置表單會話。

與使用usernamepassword文本框登錄用戶的方式相同,只需簡單登錄用戶,因爲您已知道要在您的網站中繼續使用哪個user_id

使用Facebook C#SDK時

,你可以簡單的設置你的共享視圖APP_IDAPP_SECRET並添加

<fb:login-button perms="email" size="medium"> 
     Login using your Facebook Account</fb:login-button> 

你的行動現在可以O訪問用戶的基本信息加上email,使用該信息存儲Facebook ID,以及和用戶下一次連接時,只需用

FacebookWebContext.Current.IsAuthenticated() 

,並從FB獲得的信息,如

var client = new FacebookWebClient(); 
dynamic me = client.Get("me"); 

ViewBag.Name = me.name; 
ViewBag.Id = me.id; 
ViewBag.Email = me.email; 

包含所有這些信息,只需設置與表單身份驗證提供程序一起使用的會話即可。

+0

我在facebook命名空間中找不到任何登錄按鈕? –

+0

'fb:login-button'是FBML,而不是C#!如果你很難知道它的差別,你應該開始閱讀更多有關Facebook的內容:http://developers.facebook.com/docs/reference/plugins/login/ – balexandre

+0

fb:登錄按鈕不要聲明它的FBML,它可以有是一個用戶控件。我得到了登錄按鈕,現在這樣工作,但仍然需要更多關於將facebook身份驗證與表單集成的主題的信息。使用角色系統而不必做FacebbokWebContex.Current.IsAuthenticated()|| meeship.IsAuthenticated()等。 –