Asp.Net mvc身份验证,我在哪里放置自定义会话密钥?

时间:2009-11-16 15:16:30

标签: asp.net-mvc forms-authentication session-variables

我有一个用户数据库,我可以通过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类的方法,因为         说的话:         会话[“密钥”] =密钥         对我来说看起来不是一个好习惯。   这里的好习惯是什么?这样坏人就不会破解我的会议。

2 个答案:

答案 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

相关问题