asp.net-mvc-4 – 如何使WebSecurity.Login使用用户名或电子邮件
发布时间:2020-12-16 00:47:52 所属栏目:asp.Net 来源:网络整理
导读:WebSecurity.Login in simplemembership使用用户名和密码,如何使用用户名或电子邮件而不是用户名登录用户名,以使用户可以自由地输入他的电子邮件或用户名登录。 解决方法 您可以从SimpleMembershipProvider继承,只需覆盖ValidateUser方法。 public class
WebSecurity.Login in simplemembership使用用户名和密码,如何使用用户名或电子邮件而不是用户名登录用户名,以使用户可以自由地输入他的电子邮件或用户名登录。
解决方法
您可以从SimpleMembershipProvider继承,只需覆盖ValidateUser方法。
public class ExtendedSimpleMembershipProvider : SimpleMembershipProvider { public override bool ValidateUser(string login,string password) { // check to see if the login passed is an email address if (IsValidEmail(login)) { string actualUsername = base.GetUserNameByEmail(login); return base.ValidateUser(actualUsername,password); } else { return base.ValidateUser(login,password); } } bool IsValidEmail(string strIn) { // Return true if strIn is in valid e-mail format. return Regex.IsMatch(strIn,@"^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"); } } 这只是一种方法。您可以编写自己的MembershipProvider,但如果您只需要更改ValidateUser方法,这应该可以工作。 将以下配置添加到web.config中以设置提供程序。 <membership defaultProvider="ExtendedSimpleMembershipProvider"> <providers> <clear/> <add name="ExtendedSimpleMembershipProvider" type="MyProject.Web.SimpleMembershipProvider,MyProject.Web"/> </providers> </membership> 这应该让你走正确的方向。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – 我应该将我的实用程序类放在ASP.NET MVC3
- asp.net – 密码和确认密码
- asp.net-mvc – 将自定义属性添加到MSBuild任务
- 隐藏ASP.NET菜单项
- asp.net – 是否需要resx文件?
- 懒惰加载asp.net Ajax Control Toolkit手风琴
- asp.net – System.Web.Providers.DefaultMembershipProvid
- asp.net-mvc – Mvc4绑定,缩小和AngularJS服务
- asp.net-mvc – 如何在web api中创建一个int []参数?
- [asp.net mvc 奇淫巧技] 03 - 枚举特性扩展解决枚举命名问题
推荐文章
站长推荐
热点阅读