首页 新闻 会员 周边 捐助

ASP.NET MVC3 登陆原理

0
悬赏园豆:50 [已解决问题] 解决于 2011-04-02 18:35

自带的例子里有个音乐商店合适可以实现登陆功能,我一直看不懂他的登陆是怎么做的,比如说,在验证用户名和密码的时候,代码里没有提到过访问数据库,比如里面自带的一个登陆类:

public class AccountMembershipService : IMembershipService
{
private MembershipProvider _provider;

public AccountMembershipService()
:
this(null)
{
}

public AccountMembershipService(MembershipProvider provider)
{
_provider
= provider ?? Membership.Provider;
}

public int MinPasswordLength
{
get
{
return _provider.MinRequiredPasswordLength;
}
}

public bool ValidateUser(string userName, string password)
{
return _provider.ValidateUser(userName, password);
}

public MembershipCreateStatus CreateUser(string userName, string password, string email)
{
MembershipCreateStatus status;
_provider.CreateUser(userName, password, email,
null, null, true, null, out status);
return status;
}

public bool ChangePassword(string userName, string oldPassword, string newPassword)
{
MembershipUser currentUser
= _provider.GetUser(userName, true /* userIsOnline */);
return currentUser.ChangePassword(oldPassword, newPassword);
}
}
请问这是如何实现的呢?我并没有看到他操作实体类的任何函数啊。。还有,在后台管理里方法前加[Authorize],这个东西是不是跟上面的类有关?大家帮我解答下吧,或者给我个相关链接给我看也行,谢谢啦。。。

wanmingtom的主页 wanmingtom | 初学一级 | 园豆:4
提问于:2011-04-02 03:06
< >
分享
最佳答案
0

登陆采用的是asp.net membership,是.net的类库

一个分析http://www.cnblogs.com/hjf1223/archive/2006/08/27/487895.html

web.config中membership配置了信息,至于数据库的表、视图、存储过程等都是通过.net的框架工具aspnet_regsql.exe建立的;具体的访问数据库都包装在了MembershipUser等这些类中,详细的可以参考MSDN

收获园豆:50
2012 | 高人七级 |园豆:21645 | 2011-04-02 08:24
那我要是想自己写代码怎么写呀,这个太复杂了,不想再去重载,刚学mvc3,帮帮我吧。。分都给你啦
wanmingtom | 园豆:4 (初学一级) | 2011-04-02 18:35
其他回答(3)
0

额,你应该去看看 asp.net membership 然后有可能你就彻底明白了.

~洛书~ | 园豆:333 (菜鸟二级) | 2011-04-02 07:40
1
[Authorize] 是标识使用身份验证的FilterAttribute
这里的操作只是调用了asp.net membership中实现好的方法,它使用的是你配置文件中ASPNETDB中的存储过程!
System.Web.Security.SqlMembershipProvider 我想你会明白的!

 

Chenkun | 园豆:806 (小虾三级) | 2011-04-02 14:08
1

http://msdn.microsoft.com/zh-cn/library/system.web.security.membershipuser%28v=vs.80%29.aspx

顾晓北 | 园豆:10898 (专家六级) | 2011-04-02 15:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册