【问题标题】:How to append a session to a url in webconfig如何将会话附加到 Web 配置中的 url
【发布时间】:2016-08-21 07:01:39
【问题描述】:

我正在处理重置密码代码。当用户点击通过电子邮件发送给他的重置密码链接时,他应该被重定向到他在应用程序中的帐户 到目前为止,我已经完成了以下操作。 在 web 配置中,我在键值对中硬编码了 url:

<appSettings>
<add key="RESET_PASSWORD" value="http://localhost:portnumber" />
</appSettings>

我已使用 AppSettings 存储 RESET_PASSWORD 的密钥并将其传递给字符串

string resetpassword = System.Configuration.ConfigurationManager.AppSettings["RESET_PASSWORD"].ToString();

我已将此字符串传递给我用于重置密码链接的&lt;a href&gt; 标记。

现在我想传递会话 ID 并直接在 Web 配置中执行类似的操作:

<add key="RESET_PASSWORD" value="http://localhost:portnumber?uid=<%=Session("userId")%>" />

这可能吗?我怎样才能做到这一点?当我尝试这样做时,我收到一个错误“AppSettings cannot contain text”。

【问题讨论】:

    标签: c# asp.net-mvc session session-variables


    【解决方案1】:

    cookieless="true" 设置会自动为您执行此操作。

    您需要在 web.config 的 sessionState 部分启用 cookieless

    请参考sessionState Element ConfigurationAbout Cookieless session in ASP.NET

    编辑:糟糕!我有点误解了这个问题。

    由于您使用的是 ASP.NET MVC,我建议您将重置密码页面(从邮件打开的页面)映射到某个控制器操作。然后,您需要传入用户 ID 和随机生成的 hashkey 作为 GET 参数,并将相同的 hashkey 保存在数据库中。当用户点击邮件中提供的此链接时,您需要验证数据库中是否存在用户 ID 和 hashkey 的组合。如果有,则该请求是有效的。然后,您可以继续下一步。

    您可以使用 System.Guid.NewGuid() 生成随机哈希键。您不应为此目的使用会话 ID。

    【讨论】:

      猜你喜欢
      • 2022-09-30
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多