如何在ASP.NET中使用Session并自定义Session键参数

3

是否可以使用类似于 URL 的方式来使用 ASP.NET 的会话状态?

http://myserver/somesite?sessionKey=thekey

问题在于,我需要为一个客户端软件编写站点,该软件通过类似于以下请求进行用户认证:
```html ```
http://myserver/somesite?user=xyz&passwd=xyz

如果验证成功,客户端期望得到一个会话密钥作为结果。然后将该会话密钥用作查询中的变量,如上所示。客户端不支持cookies。
我该如何使用ASP.NET MVC 4实现这种行为?
附言:我知道这绝对不是正确的方法,但我无法更改客户端。

相信我,你不想让你的名字与如此不安全的代码联系在一起。作为开发人员,你有责任保护人们的帐户信息,特别是考虑到相同的凭据经常用于多个站点。 - D'Arcy Rittich
URL中的会话密钥没问题。密码确实非常奇怪。 - Radim Köhler
1个回答

1

如果我理解你的意思是,你可以尝试一下,对吧?

(我们已经遇到过这个问题了,对搜索引擎来说很痛苦)

<sessionState mode="InProc" timeout="5" cookieless="true" />

我可以说它正在工作。

生成的URL不再是:

"http://server/Product/en-GB/MyEntity"

而是:

"http://server/Product/(S(rxavnpuw05o3fmy3tjnuystr))/en-GB/MyEntity"


是的,但客户端仍将尝试访问“http:// server / Product / en-GB / MyEntity?sessionKey =(S(rxavnpuw05o3fmy3tjnuystr))” - Daniel Bişar
URL生成的方式不在我们的掌控之中。这是在任何MVC内容被放置之前完成的。这是ASP.NET无Cookie会话处理。因此,ASP.NET会话将始终预设为URL路由,并在MVC开始工作之前进行评估。 - Radim Köhler
这是我要解决的问题。因为客户期望每次查询相同的地址,除了查询变量不同。 - Daniel Bişar
我玩了很多次……但是这是不可能的!好吧,据我所知。我们也需要改变它,因为谷歌正在使用会话cookie存储URL。但我们没有成功。但仍然,这只是我的私人经验。 - Radim Köhler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接