Membership.GetUser(用户名) – 如何返回正确的套管?
我从URL获取用户名,所以blah.com/kevinuk。
我想在页面上有一些内容说KevinUK是什么,它存储在会员表中但是当我执行以下操作时,它会返回与输入相同的大小写。
MembershipUser member = Membership.GetUser(user); string userName = member.UserName;
如何使用小写用户名作为参数并使用正确的大小写从数据库返回值?
目前尚不清楚您使用的是哪个成员资格提供程序,但您可以轻松地从中inheritance并覆盖GetUser方法。
创建一个inheritance自MembershipProvider类的类。
public class MyMembershipProvider : MembershipProvider { public MyMembershipProvider() { // // TODO: Add constructor logic here // } }
覆盖getUser方法。
public override MembershipUser GetUser(string username, bool userIsOnline) { ... Logic here to do a case insensitive lookup... }
最后更新Web配置以使用新的提供程序:
一些例子:
http://msdn.microsoft.com/en-us/library/ms366730(VS.80).aspx
遗憾的是, Membership.GetUser(string username)
方法只是将MembershipUser
的用户名设置为传递参数的值。 要获得正确的大小写,您需要使用Membership.GetUser(object providerUserKey)
,它接受用户的GUID,或覆盖前一个方法及其各自的存储过程以返回正确用户名。
或者,您可以简单地对两种不同的GetUser()
方法进行背对背调用,但这非常浪费。
在同样的问题上弄乱并尝试上面的解决方案=获得正确套管的最简单方法:
var user = Membership.GetUser(userName.Text); user = Membership.GetUser(user.ProviderUserKey); var correctCasing = user.UserName;
- 在升级到VS 2010 / .NET 4.0后,Membership.ValidateUser始终返回false
- 需要将Asp.Net Identity(RTM)用户ID从nvarchar(128)更改为uniqueidentifier
- 实现自定义成员资格用户和自定义成员资格
- 如何对GUID与LINQ进行不区分大小写的比较?
- 使用Castle在自定义成员资格提供程序中注
- 使用SimpleMembershipProvider更新自定义用户配置文件字段?
- 如何获取当前登录用户的ID?
- Page.User.Identity与Request.LogonUserIdentity之间的差异
- 如何从ASP.NET MVC自定义IdentityUser模型获取用户配置文件数据?