客户端通过非web应用打开网站,通过查询字符串给出一个ID和一个唯一的安全码。因此,url看起来像这样:.../Default.aspx?uI=21&sc=b2r#67!kl
对于不同的客户,网站有不同的内容。用户不超过10个(考虑到1个客户端是有多个员工(用户)的1个公司,并且1个公司的所有用户的安全码是相同的)。因此,来自同一公司的10个用户将具有不同的ID (uI),但不同公司的安全代码(sc)相同,依此类推。
那么,使用Sessions是有意义的,还是仅使用查询字符串值来区分用户就足够了呢?为什么/为什么不?
欢迎任何其他更好的实现方式的建议。
发布于 2013-08-26 21:02:57
我同意让URL包含像UserID和安全代码这样的信息不是一个好主意。
也许你可以做一个“登陆页面”,在那里你仍然在一个查询字符串中传递这些信息,在这个页面上设置两个会话变量,一个用于UserID,另一个用于安全代码。重定向到没有查询字符串的默认页面。然后,任何时候你需要检查变量,你可以通过会话,而不是有查询字符串显示。这只是个想法。
发布于 2013-08-26 20:52:03
使用QueryString,用户可以使用地址栏和更改SC或UI来操作结果输出。这可能会在从一个页面导航到另一个页面时产生不需要的输出。
发布于 2013-08-26 20:55:38
在我看来,如果您试图为用户传递一个惟一的标识符,那么您可能需要考虑在URL中传递一个安全令牌,也许是一个GUID,它是用户/安全代码的唯一组合。然后,在后端验证该令牌,然后使用ASP.NET成员身份来处理用户凭据的存储。
有关成员资格的更多信息,请参阅下面的内容:
http://msdn.microsoft.com/en-us/library/yh26yfzy.aspx
https://stackoverflow.com/questions/18444355
复制相似问题