如何处理登录注销

Posted

技术标签:

【中文标题】如何处理登录注销【英文标题】:How to do handle login-logoff 【发布时间】:2014-01-10 02:07:14 【问题描述】:

我在我的项目中使用新的用户身份验证系统Asp.Net Identity。我有一种情况,我必须在数据库中存储 3 种类型的用户,即:

学生 老师 管理员

现在所有这 3 个都有单独的表格,其中包含有关每个人的不同信息。我希望 Asp.Net Identity 为每种类型的用户处理他们的登录、注销和密码维护。

谁能指导我如何处理这种情况?

【问题讨论】:

我认为您需要使用自定义 MembershipProvider。 我认为您需要与会员提供商合作。这可以通过自定义成员提供程序来完成,或者您可以在 asp .net 成员模式中定义 3 个不同的角色。 【参考方案1】:

这就是我刚才的想法:

首先,在您的数据库中创建一个名为“角色”的表,其中将包含您在帖子中提到的所有角色(学生、教师、管理员等)

然后在你的表中放一个外键( RoleId )

让你的custom membership provider

我认为这应该可行

【讨论】:

【参考方案2】:

你需要这样的继承结构:

public abstract class User 
public class Student : User 
public class Teacher : User 
public class Admin : User 

User 基类包含所有必要的身份验证信息。这样,您就可以统一处理所有类型的用户。

关于数据库,有多种策略可以处理这种多态性(例如每个具体类型的表)。

【讨论】:

谢谢,我已经实施了你的建议,请查看***.com/questions/20719067/…

以上是关于如何处理登录注销的主要内容,如果未能解决你的问题,请参考以下文章

注销后谷歌如何处理后退按钮?

OpenID Connect - 如何处理单次注销

登录时如何处理状态(Ionic、Firebase、AngularJS)?

spring saml:LOGOUT 是如何处理的?是不是必须在 IDP 元数据 xml 中有注销端点?

如果用户在另一台设备上登录,则自动注销用户

如何处理小部件的谷歌登录