如何在 Asp.net 中扩展会员资格?

发布于 2024-07-30 02:48:40 字数 727 浏览 4 评论 0原文

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

当用户登录时,我想检查用户名和密码。 当然,标准的 asp.net 成员资格就是这样做的(这就是 ValidateUser())。

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

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

那么我可以重载 ValdiateUser() 方法吗? 或者我必须自己编写一个来处理这个新案例?

我将在数据库中的哪里存储这个“机构”字段? 我听说有人推荐“个人资料”表,但我不确定。

另外,我如何更改会员资格以将这些用户视为 3 个不同的用户

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

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

用户名:A09410515 密码:1234567

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

例如。

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

,有人尝试使用“用户名”和“机构”完全相同的信息进行注册,然后它会返回有关名称重复的错误。

I am wondering how do I extend the membership stuff in asp.net?

When a user logs in I want to check the UserName and Password. Of course the standard asp.net membership does this(this it is ValidateUser()).

I also want to check another field called "institution". If a user types something in this box I want to verify if the "institution", "userName" and "password" match what is in the database.

If a user leaves the "institution" blank then I just want to use it default ValidateUser() method that is provided in asp.net and check only "userName" and "password".

So can I overload the ValdiateUser() method? Or will I have to write my own one to handle this new case?

Where would I store this "institution" field in the database? I heard something about people recommending the "Profile" table but I am not sure.

Also how can I change the membership to treat these as 3 different users

Institution: ABC
UserName: A09410515
Password: 1234567

Institution: GHA
UserName: A09410515
Password: 1234567

UserName: A09410515
Password: 1234567

So as my database should be concerned these should be 3 unique users. Of course in the case that my database already would have the same information stored in it.

For example.

Institution: ABC
UserName: A09410515
Password: 1234567

and someone tries to sign up with the exact same information for "UserName" and "Institution" then it would spit back an error about being duplicate names.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

老旧海报 2024-08-06 02:48:40

是的,您可以创建自定义会员资格提供程序。 您的提供商将实施 MembershipProvider,为您提供完全控制权在会员系统和扩展数据库模式之间创建接口。 为 ASP.NET 2.0 网站编写自定义成员资格提供程序 是一个详细示例。

Yes, you can create a custom membership provider. Your provider will implement MembershipProvider giving you full control over creating an interface between the membership system and extended database schema. Writing A Custom Membership Provider for your ASP.NET 2.0 Web Site is a detailed example.

神经大条 2024-08-06 02:48:40

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

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

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

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

绝对是詹姆斯的

The lazy way of doing this would be to combine institution and username together to create the actual username.

Thus you'd have 3 distinct usernames: ABC&A09410515, GHA&A09410515, and &A09410515. Just don't allow a user to use & in a username.

Then, before creating the user or logging in you just combine the two strings together.

I can't think of any significant problems that can't be fixed with a simple hack (e.g. displaying the username (use username.split('&')[1] ), but JP's post is definitely the "right" way to do it.

James

治碍 2024-08-06 02:48:40

您可以使用应用程序名称作为机构,这样您就可以在不同的应用程序中拥有相同的用户名

Rodrigo。

You might use Application Name as the institution, that way you would have the same user name in different applications

Rodrigo.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文