Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net Facebook C#SDK是否依赖于服务器上的cookie?_Asp.net_Facebook_Facebook C# Sdk - Fatal编程技术网

Asp.net Facebook C#SDK是否依赖于服务器上的cookie?

Asp.net Facebook C#SDK是否依赖于服务器上的cookie?,asp.net,facebook,facebook-c#-sdk,Asp.net,Facebook,Facebook C# Sdk,我正在使用,并试图弄清楚它到底是如何工作的。实际上,我使用AJAX web方法根据经过身份验证的用户ID查找Facebook帐户详细信息,如下所示: if (response.status === "connected") { KitchenPC.LogonFB(response.authResponse.userID, checkResult, facebookError); } 在服务器端,LogonFB web方法执行以下操作: Client = new FacebookClien

我正在使用,并试图弄清楚它到底是如何工作的。实际上,我使用AJAX web方法根据经过身份验证的用户ID查找Facebook帐户详细信息,如下所示:

if (response.status === "connected")
{
   KitchenPC.LogonFB(response.authResponse.userID, checkResult, facebookError);
}
在服务器端,LogonFB web方法执行以下操作:

Client = new FacebookClient(applicationId, applicationSecret);
var result = Client.Get(path) as IDictionary<string, object>;

UserId = Int64.Parse((String)result["id"]);
Name = result["name"] as String;
FirstName = result["first_name"] as String;
LastName = result["last_name"] as String;
Location = result.ContainsKey("location") ? result["location"] as String : "";
Gender = result.ContainsKey("gender") ? result["gender"] as String : "";
Email = result["email"] as String;
Client=newfacebookclient(applicationId,applicationSecret);
var result=Client.Get(path)作为IDictionary;
UserId=Int64.Parse((字符串)结果[“id”]);
名称=结果[“名称”]作为字符串;
FirstName=结果[“first_name”]作为字符串;
LastName=result[“last_name”]作为字符串;
位置=结果。是否包含“位置”?结果[“位置”]为字符串:“”;
性别=结果。ContainsKey(“性别”)?结果[“性别”]为字符串:“”;
Email=结果[“Email”]作为字符串;
其中
path
是从客户端传入的用户ID

我的问题:

我正在从ASP.NET Web服务切换到WCF,而WCF不支持cookies。事实上,
HttpContext.Current
在WCF管道中将为空。我的印象是Facebook C#SDK依赖于请求中传递的
fbm_
fmsr_
cookies,这些cookies将用于验证与Facebook服务器的会话。然而,令我惊讶的是,
.Get()
调用仍然有效,并且返回了用户信息。我还翻遍了SDK源代码,在其中没有找到对
HttpContext.Current
的引用

Facebook C#SDK是否完全独立于cookie工作?这是否意味着我只需要用户的Facebook ID,只要他们之前批准了我的应用ID,我就可以获取他们帐户的信息


我只是想确保我没有做错任何事情,也不会在生产中遇到麻烦。

当您使用appId和appSecret传递构造函数时,它将使用
string.Concat(appId,“|”,appSecret)自动将访问令牌设置为app访问令牌。
。该构造函数已在较新版本的sdk中删除

如果不需要访问令牌,请将其设置为null

Client = new FacebookClient(applicationId, applicationSecret);
Client.AccessToken = null;
var result = Client.Get(path) as IDictionary<string, object>;
Client=newfacebookclient(applicationId,applicationSecret);
Client.AccessToken=null;
var result=Client.Get(path)作为IDictionary;

否。它基于客户端框架,因此没有System.Web.dll引用。它确实能够解析已签名的请求,但即使如此,您也需要手动传递已签名的请求。fb.ParseSignedRequest(Request.Params[“signed_Request”],“appSecret”)。它不支持分析cookies。好的,很好。这回答了我的问题!