2014-12-31 3 views
1

Я использую реализации проверки подлинности форм по умолчанию в ASP.NET MVC 4.Передача дополнительных данных в WebSecurity

[HttpPost] 
[AllowAnonymous] 
[ValidateAntiForgeryToken] 
public ActionResult Login(LoginModel model, string returnUrl) 
{ 
    if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe)) 
    { 
     //Assign additional data 
     return RedirectToLocal(returnUrl); 
    } 

    // If we got this far, something failed, redisplay form 
    ModelState.AddModelError("", "The user name or password provided is incorrect."); 
    return View(model); 
} 

Это прекрасно работает. Мне нужно передать некоторые дополнительные данные каждому зарегистрированному пользователю, использовать позже, не обращаясь к базе данных еще раз. (например, роли пользователя и детали роли)

Есть ли какая-либо реализация в WebSecurity для этого без использования переменной Session?

+0

Если вы хотите использовать роли для зарегистрированного пользователя, вместо использования [AllowAnonymous] в действии вы можете украсить атрибут [ValueNetAuthorize]. Также вы можете передать разрешение роли следующим образом: [ValueNetAuthorize (Permissions = Roles.View)] У вас должны быть разрешения, определенные в объекте Роли. – user3263194

ответ

0

Обычно вы бы иметь дополнительные значения, которые будут храниться в момент регистрации пользователя с помощью кода

WebSecurity.CreateUserAndAccount("username", "somepassword", new{DateCreated=DateTime.Now}); 

Вы можете добавить несколько свойств в анонимном объекте

WebSecurity.Login принимает только 2 параметров для входа существующий пользователь

0

вы можете использовать этот метод для дополнительных значений и методы параметра WebSecurity:

WebSecurity.CreateUserAndAccount(model.UserName, model.Password, 
         propertyValues: new 
         { 
          NameFamily = model.NameFamily, 
          PostCode = model.PostCode, 
          Address = model.Address, 
          Phone = model.Phone, 
          Lat = model.Lat, 
          Lng = model.Lng 
         }); 
Смежные вопросы