- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Facebook 作为我的 Web 应用程序 (ASP.NET MVC) 的登录提供程序。
我的登录工作类似于另一个 StackOverflow 帖子 How to securely authorize a user via Facebook's Javascript SDK 。我也分享用户的担忧。
我的登录流程如下:
1. 用户按下登录按钮。
2. 用户必须接受该应用程序。
3. javascript 回调检索响应。
var authResponse = response.authResponse;
返回的对象:
{
accessToken: "...",
expiresIn: 1234,
signedRequest: "...",
userID: "123456789"
}
听说可以用
signed_request
来验证用户的请求,但是网上的例子都是针对PHP的。
如何在 .NET 中执行此操作?
最佳答案
将 Rowan 的答案编译成最终代码:
public static string DecodeSignedRequest(string signed_request)
{
try
{
if (signed_request.Contains("."))
{
string[] split = signed_request.Split('.');
string signatureRaw = FixBase64String(split[0]);
string dataRaw = FixBase64String(split[1]);
// the decoded signature
byte[] signature = Convert.FromBase64String(signatureRaw);
byte[] dataBuffer = Convert.FromBase64String(dataRaw);
// JSON object
string data = Encoding.UTF8.GetString(dataBuffer);
byte[] appSecretBytes = Encoding.UTF8.GetBytes(app_secret);
System.Security.Cryptography.HMAC hmac = new System.Security.Cryptography.HMACSHA256(appSecretBytes);
byte[] expectedHash = hmac.ComputeHash(Encoding.UTF8.GetBytes(split[1]));
if (expectedHash.SequenceEqual(signature))
{
return data;
}
}
}
catch
{
// error
}
return "";
}
private static string FixBase64String(string str)
{
while (str.Length % 4 != 0)
{
str = str.PadRight(str.Length + 1, '=');
}
return str.Replace("-", "+").Replace("_", "/");
}
关于c# - 如何在 .NET 中使用 Facebook signed_request?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21579399/
我正在尝试从 URL 向我的 facebook 应用程序传递一些变量,即像 facebook 想要的那样使用 GET 变量 app_data 。 在某些时候,我已经停止获取 $_REQUEST 的 [
我有一个页面选项卡应用程序。有时,当登录用户从 Facebook 页面单击选项卡名称时,传入的表单“signed_request”数据是空的。 关于如何发生的任何想法?它是零星的,似乎没有锁定到一个特
我遇到了一个问题。 我有自定义页面选项卡,当前用户正在查看。我要求用户授予对其个人资料的扩展权限(使用 Facebook.showPermissionDialog)。如果他授予权限,理论上,我将可以访
我有一个 Facebook signed_request,它是通过订阅 auth.login 事件并在用户使用 facebook login button 登录后收到的。 在我对 signed_req
我正在尝试在 32 位操作系统中解析 facebook signed_request。 用于在 64 位操作系统中解析 signed_request 的 java 代码工作正常。 当我在 32 位操作
我开发了一个 flash 游戏,它在网站上运行,不应该像 iframe 等那样直接在 Facebook 上运行。我已经在 Facebook 注册了一个应用程序并拥有 ID 和密码,已经输入我的应用程序
我正在使用安装在 pythonanywhere 上的 django_facebook 库。当我单击从一个 View 到另一个 View 的链接时,我收到一条错误消息: 400 Bad Request
任何人都可以指出可能适用于此的任何教程的方向。 到目前为止,我只找到了一个适用于框架 4 和 MVC 的框架,我什至不确定它是否适用于框架 3.5。 我发现其他引用资料太难理解,因为我是 C# 的新手
我使用 Facebook 作为我的 Web 应用程序 (ASP.NET MVC) 的登录提供程序。 我的登录工作类似于另一个 StackOverflow 帖子 How to securely auth
我在粉丝页面的 facebook 选项卡中加载了一个 iframe,但我无法访问 $_REQUEST["signed_request"] 对象。我很困惑,因为这应该是免费赠品并且很容易获得。我已经阅读
https://developers.facebook.com/docs/facebook-login/using-login-with-games/ 他们声称json对象是 { "oauth_
在我的 Canvas 页面中,我尝试按照 http://developers.facebook.com/docs/guides/canvas/ 中描述的方式对用户进行身份验证,基本上使用这段代码(来自
我有一个 FaceBook 应用程序。 有什么方法可以用 JavaScript 获取 signed_request 吗? 对于 PHP,它看起来像这样:$_REQUEST['signed_reques
我记得 Canvas 应用程序签名请求中的所有内容:http://developers.facebook.com/docs/authentication/signed_request/ 现在我正在使用
我想弄清楚用户是否喜欢我们的品牌页面。基于此,我们想要显示一个赞按钮或一些“谢谢”文本。 我正在使用托管在 heroku 上的 sinatra 应用程序。 我尝试了这个线程中的代码:Decoding
受到 Hacker News 在 20 分钟内编写一个 facebook 应用程序的启发,我正在编写一个 facebook 应用程序,主页工作正常:显示空的诗歌列表。但是,我无法创建从一个 View
根据 Facebook - Authentication within a Canvas Page Document ,他们说我们将得到一个包含 JSON 对象的 signed_request。现在他
因此,我正在使用 Java 验证 Facebook 的 signed_request。不幸的是,我一直在验证过程中遇到问题。我看过 this documentation ,并模仿他们的算法,但没有成功
我从 Facebook 的教程了解到有人点击您的 Facebook 应用程序并被带到您的应用程序页面:http://apps.facebook.com/example_app 然后 Facebook
我正在尝试在 Java Servlet 的 doPost 中解析 Facebook signed_request。我使用 commons-codec-1.3 的 Base64 解码签名请求。这是我在
我是一名优秀的程序员,十分优秀!