0

我有一个特定于eStreamChat(.Net 的开源聊天室)的问题。他们网站上的文档或在线示例似乎没有太多内容,因此如果有人可以提供帮助,那就太好了。我认为问题出在我的哈希上。

到目前为止,我已经成功地下载并导入了该项目并设置了一个虚拟 IIS 目录,以便我可以在自己的应用程序中使用它。我在我自己的一个网页上创建了一个链接,将我带到他们的ChatRoom.aspx网页。将我带到那里的链接采用所需的格式,例如:

http://localhost:10833/eStreamChat/ChatRoom.aspx?id=lowens&timestamp=130425080917&hash=eb9fa849033cbf7b967ba472efb46363903f96dc

页面加载完毕,我可以看到聊天室,但弹出以下错误消息:无法加入聊天室!哈希无效!

为了做到这一点,我已按照此页面上的说明进行操作:

我不明白的唯一一行是:您可以从 web.config 文件配置密钥,所以如果有人可以解释我应该在 web.config 中做什么,它可能会有所帮助。

抛出的错误来自RemoteAuthUserProvider.cs. 这是代码:

NameValueCollection hrefParams = HttpUtility.ParseQueryString(hrefUri.Query);

var calculatedHash = Miscellaneous.CalculateChatAuthHash(hrefParams["id"] ?? String.Empty,
                hrefParams["target"] ?? String.Empty, hrefParams["timestamp"]);

if (hrefParams["hash"] != calculatedHash)
{
    throw new SecurityException("Hash is invalid!");
}

调试后:

hrefParams["hash"]是“eb9fa849033cbf7b967ba472efb46363903f96dc”这是

calculatedHash是“5129cf1cf65350a387ce53a2b0d31c960f9d96d3”

那么为什么那个哈希值不一样呢?

干杯

4

1 回答 1

0

在 appSettings 的 Web.config 中,需要一个值:

<appSettings> 
    <add key="AuthSecretKey" value="ENTER A VALUE HERE"/>
</appSettings>

这个值需要和网站提供的click方法中的secretKey匹配,这样hash才能匹配。

于 2013-04-25T20:00:28.217 回答