Azure servicii mobile de autentificare personalizat INTEGRATE cu asp identitate net site

voturi
0

Am implementat de autentificare personalizat pe serviciile mele azurii mobile bazate pe acest articol :

Am asp, de asemenea, site-ul net MVC. Vreau să integreze aceste 2 servicii, așa că doresc eu că utilizatorii pot înregistra prin site sau prin serviciul de telefonie mobilă.

Așa că am schimba datele utilizatorilor de masă înregistrate sunt stocate și acum este aceeași masă pe care utilizatorii de servicii de telefonie mobilă sunt stocate în.

Cum pot schimba utilizatorii ASP.NET mod implicit este sa te inregistrezi? Vreau să dezactivați implicit parola hash și de a folosi propria mea funcție hash, la fel ca și în serviciile de telefonie mobilă.

Sau poate Shoud am schimba modul de înregistrare și de conectare la servicii de telefonie mobilă? Actualizare: Acum, site-ul Eu folosesc metoda de registru implicit:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
        var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
        var result = await UserManager.CreateAsync(user, model.Password);

        if (result.Succeeded)
        {
            await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
            return RedirectToAction(Index, Home);
        }

        AddErrors(result);
    }

    // If we got this far, something failed, redisplay form
    return View(model);
}

Și conectare parte:

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    // This doesn't count login failures towards account lockout
    // To enable password failures to trigger account lockout, change to shouldLockout: true
    var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout: false);

    switch (result)
    {
        case SignInStatus.Success:
            return RedirectToLocal(returnUrl);
        case SignInStatus.LockedOut:
            return View(Lockout);
        case SignInStatus.RequiresVerification:
            return RedirectToAction(SendCode, new { ReturnUrl = returnUrl, RememberMe = model.RememberMe });
        case SignInStatus.Failure:
        default:
            ModelState.AddModelError(, Invalid login attempt.);
            return View(model);
        }
    }
Întrebat 07/06/2015 la 15:28
sursa de către utilizator
În alte limbi...                            


1 răspunsuri

voturi
0

Pentru codul site-uri web: Punerea în aplicare a unei clase care derivă din UserManager

public class WebsiteUserManager : UserManager<ApplicationUser>
{
    public WebsiteUserManager(IUserStore<ApplicationUser> manager)
        : base(manager)
    {
    }
}

Punerea în aplicare a unei funcții care returnează Creați WebsiteUserManager cu propriul configurare (politica de parole, etc.). În cazul în care dvs. utilizați EntityFramework, pur și simplu utilizați UserStore cu DbContext dumneavoastră:

var manager = new WebsiteUserManager(new UserStore<ApplicationUser>(context.Get<DbContext>()));

Managerul vă oferă acces la validatorului parola și PasswortHasher .

Apoi adăugați WebsiteUserManager ca proprietate din clasa WebAPI care conține metoda de înregistrare:

public WebsiteUserManager WebUserManager
    {
        get
        {
            return _webUserManager ?? Request.GetOwinContext().GetUserManager<WebsiteUserManager>();
        }
        private set
        {
            _webUserManager = value;
        }
    }

Acum, în apelul metodei Înregistrare

var result = await WebUserManager.CreateAsync(user, model.Password);
Publicat 12/06/2015 la 08:50
sursa de către utilizator

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more