代码之家  ›  专栏  ›  技术社区  ›  user171910

ASP.NET MVC身份验证,在哪里放置自定义会话密钥?

  •  0
  • user171910  · 技术社区  · 16 年前

    我有一个用户数据库,我可以通过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 回复  |  直到 16 年前
        1
  •  0
  •   blowdart    16 年前

    会话与ASP.NET中的身份验证cookie分离,因此为了接管会话,攻击者必须同时复制身份验证cookie和会话cookie。

    您可以使用 constructors 在生成用户数据并通过 UserData 属性。但是请注意,如果此用户密钥是敏感的,那么您可能需要加密身份验证cookie。这是ASP.NET中的默认值,但值得具体说明

    <forms protection="All" >
    

    进入web.config

        2
  •  1
  •   Graviton    16 年前

    不太明白你的意思是什么

    session[“key”]=键看起来不像 对我来说是个好习惯

    我一直在用 Controller.HttpContext.Session 在最长的一段时间里,一点也不感到内疚。

    如果您想担心被黑客攻击,那么在将get参数传递到数据库之前,应该确保对它们进行了正确的清理。 那是 重要的。