Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在Asp.net中扩展成员资格?_C#_Asp.net_Asp.net Mvc_Asp.net Membership - Fatal编程技术网

C# 如何在Asp.net中扩展成员资格?

C# 如何在Asp.net中扩展成员资格?,c#,asp.net,asp.net-mvc,asp.net-membership,C#,Asp.net,Asp.net Mvc,Asp.net Membership,我想知道如何在asp.net中扩展成员资格 当用户登录时,我想检查用户名和密码。当然,标准的asp.net成员身份可以做到这一点(这就是ValidateUser() 我还想检查另一个名为“机构”的字段。如果用户在此框中键入了一些内容,我想验证“机构”、“用户名”和“密码”是否与数据库中的内容匹配 如果用户将“institution”留空,那么我只想使用asp.net中提供的默认ValidateUser()方法,并只检查“userName”和“password” 那么我可以重载ValdiateUs

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

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

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

如果用户将“institution”留空,那么我只想使用asp.net中提供的默认ValidateUser()方法,并只检查“userName”和“password”

那么我可以重载ValdiateUser()方法吗?还是我必须自己写一本来处理这个新案子

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

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

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

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

用户名:A09410515 密码:1234567

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

比如说

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


如果有人试图使用与“用户名”和“机构”完全相同的信息注册,那么它会回吐出重复名称的错误。

是的,你可以。您的提供者将实现对在成员资格系统和扩展数据库模式之间创建接口的完全控制。是一个详细的例子。

实现这一点的惰性方法是将机构和用户名组合在一起,以创建实际的用户名

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

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

我想不出有什么重大的问题不能通过简单的破解(例如显示用户名(使用username.split('&')[1])来解决,但是JP的帖子绝对是解决这个问题的“正确”方法


James

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


Rodrigo.

您好,谢谢您的链接。不过我还是有点困惑。我将要添加的这些额外字段存储在哪里。比如我将其添加到配置文件还是什么?比如我正在制作一个自定义提供程序,以便将asp.net数据库和数据库合并在一起,但我正在使用mssql server。我还注意到它们覆盖了这些方法。我仍然希望t使用默认的验证方法。所以我做了两个重载方法。一个使用我的自定义验证,另一个调用默认验证方法?