Asp.net 实现一个定制的成员资格提供程序,要求有点奇怪
为移动用户在手机上购买和下载内容构建新的移动网络平台。在过去,我们使用了一种完全定制的登录机制,但我正在研究在下一个版本的平台上使用定制的成员资格提供商 问题是,我们有一些稍微奇怪的“登录”机制要求,所以我不能100%确定成员资格提供商是否最合适 只是想通过“是的,会员资格提供商非常适合”或“不,你是在开方便之门” 要求Asp.net 实现一个定制的成员资格提供程序,要求有点奇怪,asp.net,asp.net-membership,membership-provider,mobile-website,Asp.net,Asp.net Membership,Membership Provider,Mobile Website,为移动用户在手机上购买和下载内容构建新的移动网络平台。在过去,我们使用了一种完全定制的登录机制,但我正在研究在下一个版本的平台上使用定制的成员资格提供商 问题是,我们有一些稍微奇怪的“登录”机制要求,所以我不能100%确定成员资格提供商是否最合适 只是想通过“是的,会员资格提供商非常适合”或“不,你是在开方便之门” 要求 用户可能需要使用“手机号码”(用户名)和“Pin”(密码)登录 这非常适合,因为他们已经注册并确认了SMS,并且它满足了ValidateUser(字符串用户名、字符串密码)方法
ValidateUser(字符串用户名、字符串密码)
方法实现- 用户输入的手机和用户输入的Pin
- 用户仅输入手机(我认为代码隐藏可以满足pin要求)
- 完全透明的登录(代码隐藏完成整个登录过程)
任何人对上述内容有任何评论/反馈,或者对您过去所做的任何奇怪的会员资格提供商实施有任何建议。我认为它可以工作。我们在我们的一个网站上做了#3。下面是我们用来处理它的一段代码。要使用此功能,请创建一个登录页面(transparentlogin.aspx或类似的页面),确保web.config文件允许匿名访问此页面,并在transparentlogin.aspx页面的page_load函数中输入如下代码:
const string specialpassword = "ThisIsOurSpecialPasswordForBehindTheScenesLogin";
if (MobileNumberFoundInHeader())
{
string username = GetMobileNumberFromHeaders();
// Authenticate the user behind the scenes
System.Web.Security.FormsAuthentication.SetAuthCookie(username, false);
System.Web.Security.FormsAuthentication.Authenticate(username, specialpassword);
}
else
{
throw new Exception ("Mobile Number Missing");
}
然后,在MembershipProvider中的ValidateUser函数中,确保执行如下检查:
public override bool ValidateUser(string username, string password)
{
const string specialpassword = "ThisIsOurSpecialPasswordForBehindTheScenesLogin";
bool ValidationSuccess = false;
// If the password being passed in is the right secret key (same
// for all users), then we will say that the password matches the
// username, thus allowing the user to login
if (password == specialpassword)
{
ValidationSuccess = true;
}
if (DoStandardUsernamePasswordVerification() == true)
{
ValidationSuccess = true;
}
return ValidationSuccess;
}
至于要求2,我有点困惑。接线员到底是什么?我以为我们是在用手机通过网络浏览器浏览网站。接线员在哪里工作?如果我上面提出的解决方案没有帮助,请在回复中提供有关运营商的更多详细信息
蒂姆干杯。。。是的,这就是我得出的结论。回复:“运营商”。。。我是说手机网络运营商。。。e、 AT&T、沃达丰、T-Mobile等……我的问题和你们的差不多。。如果你能建议我做什么。=>Q:我正在开发自定义成员资格提供程序,我允许用户通过emailID以用户名登录,但MembershipProvider.ValidateUser()以用户名为参数(我的用户也有用户名,只是为了在他们的个人资料中显示)。那我该怎么办呢。目前,我已实现ValidateUser()以在该参数中获取emailid。。但这看起来不是一个好的练习。。那怎么办???