我有一个用户数据库,我可以通过Web服务访问该数据库。 其中一种Web服务方法是这样的:
public void login(string name, string password, out user_key)
在我的控制器中我想做这样的事情:
String key = repo.login(username, password); // a wraper on the login method
if(key ....)
FormsAuthentication.SetAuthCookie(username, false);
我的问题,他们来了: 此密钥用于检索特定用户数据。 我在哪里放钥匙,以便我可以访问它? 我的意思是有一个FormsAuthentication类的方法,因为 说的话: 会话[“密钥”] =密钥 对我来说看起来不是一个好习惯。 这里的好习惯是什么?这样坏人就不会破解我的会议。
答案 0 :(得分:1)
不太明白你的意思
Session [“key”] =键看起来不像 对我来说是个好习惯
我一直在使用像Controller.HttpContext.Session
这样的东西,时间最长,根本没有丝毫的内疚感。
如果您想担心被黑客入侵,那么您应该确保在将GET参数传递到数据库之前对其进行了正确的清理。 那是很重要。
答案 1 :(得分:0)
会话与ASP.NET中的身份验证cookie分开,因此为了接管会话,攻击者必须复制身份验证cookie和会话cookie。
您可以使用constructors中的一个在生成身份之前接受userData,然后通过UserData属性读取它来将用户信息写为身份验证票证的一部分。请注意,如果此用户密钥是敏感的,那么您可能需要加密身份验证cookie。这是ASP.NET中的默认值,但值得特定并且放置
<forms protection="All" >
进入你的web.config