我開發了一個ASP.NET MVC5應用程序。我在我的應用程序中使用了Facebook外部認證。 當我使用「Locallhost」域調試此應用程序時,Facebook登錄工作正常,但是當我在主服務器中發佈應用程序時,AuthenticationManager.GetExternalLoginInfo()返回null,它在URL中給我這樣一個錯誤:使用facebook SDK登錄MVC5應用程序時獲取錯誤(error = access_denied)
http://xxxxx.com/Account/ExternalLoginCallback?ReturnUrl=%2Fen&error=access_denied#_=_
我已經設置了「網站URL」爲「http://xxxx.com」和「有效的OAuth重定向的URI」,如Facebook的發展控制檯「http://xxxx.com/signin-facebook」。
我在Startup.Outh.cs文件設置爲:
var FacebookOptions = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationOptions();
FacebookOptions.AppId = ConfigurationManager.AppSettings["Facebook_User_Key"];
FacebookOptions.AppSecret = ConfigurationManager.AppSettings["Facebook_Secret_Key"];
FacebookOptions.Provider = new Microsoft.Owin.Security.Facebook.FacebookAuthenticationProvider()
{
OnAuthenticated = async context =>
{
context.Identity.AddClaim(new System.Security.Claims.Claim("FacebookAccessToken", context.AccessToken));
foreach (var claim in context.User)
{
var claimType = string.Format("urn:facebook:{0}", claim.Key);
string claimValue = claim.Value.ToString();
if (!context.Identity.HasClaim(claimType, claimValue))
context.Identity.AddClaim(new System.Security.Claims.Claim(claimType, claimValue, "XmlSchemaString", "Facebook"));
}
}
};
FacebookOptions.SignInAsAuthenticationType = DefaultAuthenticationTypes.ExternalCookie;
app.UseFacebookAuthentication(FacebookOptions);
我不知道爲什麼外部登錄不只是在服務器與我的主域名工作。請幫助我解決這個問題。
您的應用處於開發模式?如果是,用戶在您的應用中扮演角色?你是否要求任何尚未批准的權限? – The1Fitz