Asp.net mvc 使用Facebook';使用C#SDK执行s DeAuth回调

Asp.net mvc 使用Facebook';使用C#SDK执行s DeAuth回调,asp.net-mvc,facebook-c#-sdk,Asp.net Mvc,Facebook C# Sdk,我正在尝试在.NETMVC3中处理来自Facebook的DeAuth回调,以便检索用户ID并从数据库中删除该用户 我创建了一个操作,该操作使用以下代码写入日志文件(用于调试): 起初,我的代码失败,因为app为null。然后我尝试将canvasAuthorization属性添加到控制器,这也没有多大帮助。是否有其他我应该添加的属性?还是我有别的地方错了 编辑: 我使用的是SDK的4.2.1版 编辑2: 多亏了,我发现以下代码可以完成这项工作(操作或控制器上没有任何属性) 我通过解析Faceboo

我正在尝试在.NETMVC3中处理来自Facebook的DeAuth回调,以便检索用户ID并从数据库中删除该用户

我创建了一个操作,该操作使用以下代码写入日志文件(用于调试):

起初,我的代码失败,因为
app
null
。然后我尝试将
canvasAuthorization属性
添加到
控制器
,这也没有多大帮助。是否有其他我应该添加的属性?还是我有别的地方错了

编辑:

我使用的是SDK的4.2.1版

编辑2: 多亏了,我发现以下代码可以完成这项工作(操作或控制器上没有任何属性)


我通过解析Facebook点击您的DeAuth页面时发出的签名请求来实现这一点:

string signedRequestValue = Request.Form["signed_request"];
var app = new FacebookApp();
var sig = app.ParseSignedRequest(signedRequestValue);
long userid = sig.UserId;

我使用的是以前版本的SDK,我必须对其进行修改,以使ParseSignedRequest成为公共的(它是私有的),但我相信这是您正在使用的最新版本4.2.1中的公共方法。

感谢您将我设置为正确的路径:)。代码实际上比您建议的还要简单。
var app = new FacebookApp();
var userId = app.SignedRequest.UserId;
string signedRequestValue = Request.Form["signed_request"];
var app = new FacebookApp();
var sig = app.ParseSignedRequest(signedRequestValue);
long userid = sig.UserId;