首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ASP.Net MVC4登录会话的良好实践是什么?

ASP.Net MVC4登录会话的良好实践是什么?
EN

Stack Overflow用户
提问于 2013-10-07 14:45:23
回答 2查看 1.6K关注 0票数 0

目前,我的网站在用户进入数据库的条目旁边存储一个会话ID和一个IP地址,然后将其存储在cookie中。如果每个页面上的会话ID和IP地址匹配,那么我们将授予它们访问权限。这似乎不错,但我们希望允许人们在多个IP地址/多个会话上登录该网站。

所以我只是想知道最好和最安全的方法是什么?我们只是在会话中存储用户名和密码,在会话中存储用户名和哈希密码,还是只在数据库的一个新的“会话”表中存储一个唯一的ID,其旁边是用户的ID?那我们就把会话ID存储在饼干里吗?

我不确定篡改会话是否是一件事,但我通常认为这是可能的精英,所以我试图尽可能地安全。我知道编辑饼干也很简单。

该网站在后台使用Web服务。当用户输入他们的登录详细信息时,他们会被发送到服务并被选中,然后返回yay或to。其原因是该服务被不同平台的多个应用程序所使用。因此,基本/简单的成员关系模型在这里并不有效。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-16 08:28:35

我在这里完成了以下指南:http://www.codeproject.com/Articles/13032/Custom-MembershipProvider-and-RoleProvider-Implemehttp://logcorner.wordpress.com/2013/08/28/how-to-configure-custom-membership-provider-using-asp-net-mvc4-with-external-login-like-facebook-yahoo-google-or-other-relying-party-accounts-2/

我设法让它与我们的服务一起工作,方法是从客户成员中重写所需的方法,并让它们与我们的服务进行检查并作出相应的响应。效果很好。

示例

代码语言:javascript
运行
复制
    public override bool ValidateUser(string username, string password)
    {
        MyUser newUser = new MyUser 
        {
            EMail = username,
            Password = password
        };

        try
        {
            MyUser user = MyService.Authenticate(newUser);
            if (user.EMail != null && user.IsActivated)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        catch (Exception e)
        {
            return false;
        }

    }

它还提供了使用MembershipCreateStatus注册新用户的能力。这让我详细说明了为什么某件事情会失败,而不是像以前那样抛出一个错误。谢谢你给我指明了正确的方向神秘人。

票数 1
EN

Stack Overflow用户

发布于 2013-10-07 14:59:20

如果每个页面上的会话ID和IP地址匹配,那么我们将授予它们访问权限。

你有没有考虑过IP地址很不安全。。此外,它们有可能在一次会议上合法地改变。

听起来你好像已经有了自己的安全保障,如果你在这方面有很好的经验的话,那就没问题了。

我建议您看看MVC提供的安全性,例如查看一下奥奥斯。它应该有你需要的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19227844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档