如何在Asp.net中延长会员资格?

11

我想知道如何在asp.net中扩展会员功能?

当用户登录时,我想检查用户名和密码。 当然,标准的asp.net成员资格(即ValidateUser())可以做到这一点。

我还想检查另一个名为“机构”的字段。 如果用户在此框中输入内容,请验证数据库中的“机构”,“用户名”和“密码”是否匹配。

如果用户将“机构”留空,则只想使用提供在asp.net中的默认的ValidateUser()方法,只检查“用户名”和“密码”。

那么我能否重载ValdiateUser()方法? 还是必须编写自己的处理新情况的方法?

在数据库中,我应该在哪里存储此“机构”字段? 我听说有人推荐“Profile”表,但我不确定。

还有,如何更改成员身份以将它们视为3个不同的用户?

机构:ABC 用户名:A09410515 密码:1234567

机构:GHA 用户名:A09410515 密码:1234567

用户名:A09410515 密码:1234567

因此,就我的数据库而言,这些应该是三个唯一的用户。 当然,在我的数据库已经存储了相同信息的情况下。

例如。

机构:ABC 用户名:A09410515 密码:1234567

如果有人尝试使用完全相同的“用户名”和“机构”进行注册,则将返回关于重复名称的错误。

3个回答

15

你好,感谢提供的链接。但我还是有点困惑,我应该把这些额外的字段存储在哪里?是添加到个人资料中还是其他地方?我正在制作一个自定义提供程序,以便将我的asp.net数据库和我的数据库合并在一起,但我使用的是mssql服务器。另外,我注意到他们覆盖了那些方法。我仍然想使用默认的验证方法。所以我需要创建两个重载方法吗?一个使用我的自定义验证,另一个调用默认的验证方法? - chobo2

2

懒惰的方法是将机构和用户名组合在一起创建实际的用户名。

因此,您将拥有3个不同的用户名:ABC&A09410515、GHA&A09410515和&A09410515。只要不允许用户在用户名中使用&即可。

然后,在创建用户或登录之前,只需将两个字符串组合在一起即可。

我无法想出任何重大问题,这些问题都可以通过简单的hack来解决(例如,显示用户名(使用username.split('&')[1]),但JP的帖子绝对是“正确”的方法。

詹姆斯


1
你可以将应用程序名称作为机构使用,这样你在不同的应用程序中就会有相同的用户名。
罗德里戈。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接