动态设置opentok中的token的EXPIRE_TIME为.net中当前时间的15分钟
Set EXPIRE_TIME for token in opentok of 15 minutes from current time in .net dynamically
我是这样让令牌以天为单位过期的:
tokenOptions.Add(TokenPropertyConstants.EXPIRE_TIME, new DateTime(2014, 03, 24)); //date of tomorrow
我的主要问题是我需要从服务器端设置EXPIRE_TIME
。如何修复EXPIRE_TIME
从创建时间15分钟?
我试过了,但是不工作:
tokenOptions.Add(TokenPropertyConstants.EXPIRE_TIME, new DateTime(2014, 03, 23, 18, 20, 00)); //15 minutes more than current time
tokenOptions下EXPIRE_TIME的代码如下所示
public string GenerateToken(string sessionId)
{
Dictionary<string, object> options = new Dictionary<string, object>();
return GenerateToken(sessionId, options);
}
public string GenerateToken(string sessionId, Dictionary<string, object> options)
{
NameValueCollection appSettings = ConfigurationManager.AppSettings;
options.Add("session_id", sessionId);
options.Add("create_time", (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds);
options.Add("nonce", RandomNumber(0, 999999));
if (!options.ContainsKey(TokenPropertyConstants.ROLE))
{
options.Add(TokenPropertyConstants.ROLE, "publisher");
}
// Convert expire time to Unix Timestamp
if (options.ContainsKey(TokenPropertyConstants.EXPIRE_TIME))
{
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0);
DateTime expireTime = (DateTime)options[TokenPropertyConstants.EXPIRE_TIME];
TimeSpan diff = expireTime - origin;
options[TokenPropertyConstants.EXPIRE_TIME] = Math.Floor(diff.TotalSeconds);
}
string dataString = string.Empty;
foreach (KeyValuePair<string, object> pair in options)
{
dataString += pair.Key + "=" + HttpUtility.UrlEncode(pair.Value.ToString()) + "&";
}
dataString = dataString.TrimEnd('&');
string sig = SignString(dataString, appSettings["opentok_secret"].Trim());
string token = string.Format("{0}{1}", appSettings["opentok_token_sentinel"], EncodeTo64(string.Format("partner_id={0}&sdk_version={1}&sig={2}:{3}", appSettings["opentok_key"], appSettings["opentok_sdk_version"], sig, dataString)));
return token;
}
令牌过期时,用户不会自动被踢出会话。会话一直持续到用户离开会话为止。当用户试图再次加入会话时,他们的过期令牌将阻止他们加入。
我要做的是在客户端设置超时并在15分钟后调用session.disconnect()。如果他们尝试再次连接,它将无法工作,因为令牌已经过期。
相关文章:
- 借助asp.net验证或java脚本对多个文本进行验证
- java.net和javascript之间正则表达式的差异
- 您如何每 15 分钟从服务器刷新和 HTML 页面
- 如何在asp.net中自动注销我的网站10分钟后,在我的网站处于空闲状态
- ASP.NET:每5分钟从代码后面调用一次弹出窗口
- 加载angularjs计时器加15分钟
- ASP.Net 每五分钟弹出一次网络表单提醒
- 舍入时间间隔最长为 15 分钟步长
- Javascript 显示接下来 15 分钟间隔的时间
- 如何以 15 分钟的间隔在系统时间从数据库获取数据
- 运行jQuery脚本发出ajax请求2分钟后出现错误net::ERR_INSUFFICIENT_RESOURCES
- 如果日期少于或超过15分钟(如果日落或日出)
- 如何使用Javascript运行一个间隔15分钟的循环?
- jQuery Timepicker和jQuery Datepair:如何将结束时间设置为15分钟
- 以15分钟为单位,直到一个特定的时间
- setTimeout在几分钟后发疯,FF6.0, Chrome 15
- 浏览器在 10-15 分钟后崩溃
- 动态设置opentok中的token的EXPIRE_TIME为.net中当前时间的15分钟
- MongoDb空闲约15分钟后会断开连接
- 时间间隔,15分钟增量格式