asp.net-mvc - 使用 MVC 5 OWIN 时从 Facebook 注销

标签 asp.net-mvc facebook-login owin

我有一个 MVC 5 Web 应用程序,它设置了 Facebook 身份验证并且运行良好。用户单击登录页面上的“Facebook”,登录 Facebook 并通过我们的网站进行身份验证。如果用户注销,对 AuthenticationManager.SignOut() 的调用会正确地注销网站,但如果用户随后返回登录页面并再次单击“Facebook”,他们会立即登录,而无需登录 Facebook 。

所以我的问题是,如何配置 MVC 5 OWIN facebook 登录,以便用户在退出网站时退出 facebook,或者换句话说,防止缓存下一次的身份验证登录。我不希望用户的 Facebook 登录信息被静默缓存,以防他们与其他用户共享浏览器。

最佳答案

据我所知,执行此操作的唯一方法是将事件绑定(bind)到您的注销按钮或链接并使用 Facebook Javascript SDK实际为您执行 Facebook 注销。

<a href="/Account/Logout" id="Logout">LogOut</a>

<script type="text/javascript">
   $(function(){
      $("#Logout").on("click", function(e){
        if(confirm("This will also log you out of Facebook.  Proceed?")){
           FB.logout(function(response) {
           // Person is now logged out
           });
         }else{ 
            //do not allow the link to continue and sign our of your site.
            //This is optional and allows you to provide options
            e.PreventDefault();
         }
      });    
   });
</script>

您实际上可以使用确认对话框来询问他们是否也想退出 Facebook。确认意味着是,不确认意味着否,只需将我从您的网站中注销即可。同样,使用 SDK 和一点控制逻辑应该可以提供您需要的结果。

关于asp.net-mvc - 使用 MVC 5 OWIN 时从 Facebook 注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21556739/

相关文章:

c# - ASP.Net MVC - 正确执行 MVVM

c# - 如何以 Razor 语法对 View 模型项进行排序

jQuery - ASP.NET MVC - .load 和 RenderPartial

ios - 在 Swift 3.0 上登录 Facebook 时出现错误代码 2500

c# - 是什么导致错误 "Looks like you forgot to register the http module CaSTLe.MicroKernel.Lifestyle.PerWebRequestLifestyleModule"?

asp.net-mvc - 将 DropDownListFor 助手绑定(bind)到字典

android - 我的应用程序在 android studio 3.1.3 的 Release模式下等待调试器

Reactjs Facebook 登录

c# - 基本身份验证没有挑战

asp.net-mvc - 在 MVC 5 中正确获取 DataProtectionProvider 以进行依赖项注入(inject)