我有一个尚未发布的项目,但我不会很快发布,但几天前我将它从 mvc3 移到了 mvc4,在阅读时我看到了这个新的安全提供程序SimpleMembership
。
我现在实现安全性的方式是使用MembershipProvider
and FormsAuthentication
:
- 我已经实现了 ICustomPrincipal
- 我已经实现了 CustomPrincipalSerializeModel
- 我已经实现了 IPrincipal
要注册用户,我使用:
MembershipCreateStatus status;
Guid g = Guid.NewGuid();
Membership.CreateUser(model.User.Email.Trim(), model.Password.Trim(), model.User.Email.Trim(), null, null, true, g, out status);
if (status == MembershipCreateStatus.Success)
...
FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket(
1,
tUser.Email,
DateTime.Now,
DateTime.Now.AddDays(60),
true,
userData);
string encTicket = FormsAuthentication.Encrypt(authTicket);
HttpCookie faCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encTicket);
Response.Cookies.Add(faCookie);
...
但是当我看到 SimpleMembership 看起来更干净时,我想将项目移至它,
但我对此有一些疑问:
1)我对所有数据库操作都使用存储过程,我根本不使用 EF。如果我使用 SimpleMembership 是否可以在没有 EF 的情况下使用它?
2)我是否需要为现实世界的应用程序构建自定义 SimpleMembership?
3)我看到它为数据库创建表提供种子。我有我的表Users, Profiles, Roles and UsersInRoles
,我可以将它应用到我的自定义架构吗?
4)如果我想打电话WebSecurity.CreateAccount(...)
我想从域项目中调用一些我的自定义方法,该方法负责调用创建用户的存储过程我是否必须将其自定义,如果我必须这样做,是否有一些资源可以解释如何为用户和角色?