2014-09-03 45 views
1

我使用MVC与Owin外部登录Facebook。Facebook PopUp登录Owin

欧文不打开Facebook登录为popup.It重定向页面到Facebook。

我知道有一个选项可以使facebook登录以popup的方式打开。我们需要在URL中添加“& dialog = popup”。

我没有OWIN这个选项。

有没有办法做到这一点?

+0

该弹出窗口是一个JavaScript API功能。由于它需要在页面上与JavaScript进行交互,因此无法将您完全重定向到Facebook。但是,对于传统的OAuth,重定向就是它的工作原理。所以,不,你不能使用弹出窗口。 – 2014-09-03 13:51:07

回答

3

我有同样的问题。通过阅读源代码后,我发现了一个解决方案:

基本上:您需要继续为Facebook创建身份验证提供程序。所以创建一个继承自FacebookAuthenticationProvider的类。在这个类中,重写“ApplyRedirect”方法。让它看起来像:

public override void ApplyRedirect(FacebookApplyRedirectContext context) 
{ 
    context.Response.Redirect(context.RedirectUri + "&display=popup"); 
} 

现在只需线该类了你的配置,例如:

app.UseFacebookAuthentication(new FacebookAuthenticationOptions 
{ 
    Provider = new **<the name of the class that you created>**() 
    // the rest of your configuration such as app ID and secret 
}); 

这应该是它!