gpt4 book ai didi

asp.net-mvc - .NET 自定义成员资格与。自定义登录/注册 : Authentication/Authorization

转载 作者:行者123 更新时间:2023-12-04 21:21:45 25 4
gpt4 key购买 nike

当我制作一个需要注册和登录的网站时,为了快速完成一些没有太多要求的事情,我将使用带有 [Authorize] 属性的 Membership 等等。非常适合它的功能。但现在我想要更多的东西。基本上,我正在使用 ASP.NET MVC EF CodeFirst 开发一个站点,并希望创建一个 User 实体以保存到包含更多信息的数据库。注册时所需的此类信息将具有其他属性,例如名字、姓氏、性别、国家/地区等...

我已经尝试阅读实现自定义 MembershipProvider 和 MembershipUser 等......我已经走了这么远,但它最终并没有按照我想要的方式组合在一起。现在,当我用 PHP 或 ASP.NET 开发站点时,我将只创建我的 User 类并为他提供注册页面所需的所有属性,然后将其推送到数据库。然后,当我登录时,我只需获取用户名或电子邮件和密码,然后创建一个 session 变量,指示用户是否已获得授权。

这样做可以吗?我只是不明白为什么整个成员(member)资格的事情比看起来要复杂得多,所以我觉得我错过了这一切。此外,我注意到在 ASP.NET MVC Web 应用程序中,当您通过身份验证时,它会写出这一行....

FormsAuthentication.SetAuthCookie(model.UserName, createPersistentCookie: false);

那和...有什么区别
Session["username"] = model.UserName

最佳答案

您是否考虑过简单地创建一个自定义 IPrinicipal 而不是走成员(member)资格提供商的路线(我个人不喜欢它并且发现它对我使用的应用程序来说太重了)/IIdentity您的应用程序的对象并使用您想要的“用户”对象的属性扩展它们?

与其深入细节,还有一些关于 SO 的很棒的资源涵盖了这个概念:ASP.NET MVC - Set custom IIdentity or IPrincipal

关于您的问题,Session["username"]只是一个 session cookie。您将失去 FormsAuthentication 的所有好处。例如,对于表单例份验证,如果用户请求需要经过身份验证访问的页面并且该用户之前未登录到该站点,则用户将被重定向到带有表单例份验证的配置登录页面。

Session["username"]您需要手动滚动身份验证的各个方面。我强烈建议不要这样做。

关于asp.net-mvc - .NET 自定义成员资格与。自定义登录/注册 : Authentication/Authorization,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11006741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com