Обычно ваша логика регистрации пользователя будет находиться в контроллере ваших учетных записей (это, безусловно, имеет место, если вы используете один из предоставленных шаблонов для интернет-приложения). Поэтому вам нужно будет добавить код к методу регистрации, чтобы добавить пользователя в роль пользователя, как только их учетная запись будет успешно создана.
Это проще и аккуратнее, чем пытаться наблюдать за событием, даже если оно существует. Вы должны найти, что в хорошо спроектированном приложении вы не будете иметь свой регистрационный код не более чем в одном месте. Это также позволяет обрабатывать сценарии OAuth, если вы используете учетные записи социальных сетей, таких как Facebook.
например. Это, как вы могли бы использовать его с вне коробки AccountsController в шаблоне интернет-приложений (для локальной регистрации на сайте)
[Authorize]
[InitializeSimpleMembership]
public class AccountController : Controller
{
... various actions ...
// GET: /Account/Register
[AllowAnonymous]
public ActionResult Register() {
return View();
}
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Register(RegisterModel model) {
if (ModelState.IsValid) {
// Attempt to register the user
try {
WebSecurity.CreateUserAndAccount(model.UserName, model.Password);
// ----------------- NEW LINES HERE
Roles.AddUserToRoles(model.UserName, new[] { "Users" });
// ----------------- END NEW LINES
WebSecurity.Login(model.UserName, model.Password);
return RedirectToAction("Index", "Home");
}
catch (MembershipCreateUserException e) {
ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
}
}
// If we got this far, something failed, redisplay form
return View(model);
}
... more actions ...
}
Есть ли какой-либо пользователь создал/зарегистрированное событие, которое я могу слушать? – JensB