2016-05-09 1 views
0

Ich arbeite an einem Projekt, das die Webanwendungsvorlage in VS 2015 verwendet. Ich möchte die Anmeldefunktion ändern, so dass der Authentifizierungsprozess die private Datenbank verwendet, aber ich habe es schwer gehabt, den Code zu verstehen.Wie ändert man die Login-Funktion in ASP.Net Web Application Template?

Im Folgenden ist der Ursprungskodemuster (ich die private Datenbank für die Login-Funktion zu verwenden, codiert, aber es versäumt, den Login-Status zu halten):

using System; 
using System.Web; 
using System.Web.UI; 
using Microsoft.AspNet.Identity; 
using Microsoft.AspNet.Identity.Owin; 
using Owin; 
using WebApplication2.Models; 

namespace WebApplication2.Account 
{ 
    public partial class Login : Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      RegisterHyperLink.NavigateUrl = "Register"; 
      // Enable this once you have account confirmation enabled for password reset functionality 
      //ForgotPasswordHyperLink.NavigateUrl = "Forgot"; 
      OpenAuthLogin.ReturnUrl = Request.QueryString["ReturnUrl"]; 
      var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]); 
      if (!String.IsNullOrEmpty(returnUrl)) 
      { 
       RegisterHyperLink.NavigateUrl += "?ReturnUrl=" + returnUrl; 
      } 
     } 

     protected void LogIn(object sender, EventArgs e) 
     { 
      if (IsValid) 
      { 
       // Validate the user password 
       var manager = Context.GetOwinContext().GetUserManager<ApplicationUserManager>(); 
       var signinManager = Context.GetOwinContext().GetUserManager<ApplicationSignInManager>(); 

       // This doen't count login failures towards account lockout 
       // To enable password failures to trigger lockout, change to shouldLockout: true 
       var result = signinManager.PasswordSignIn(Email.Text, Password.Text, RememberMe.Checked, shouldLockout: false); 

       switch (result) 
       { 
        case SignInStatus.Success: 
         IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response); 
         break; 
        case SignInStatus.LockedOut: 
         Response.Redirect("/Account/Lockout"); 
         break; 
        case SignInStatus.RequiresVerification: 
         Response.Redirect(String.Format("/Account/TwoFactorAuthenticationSignIn?ReturnUrl={0}&RememberMe={1}", 
                 Request.QueryString["ReturnUrl"], 
                 RememberMe.Checked), 
              true); 
         break; 
        case SignInStatus.Failure: 
        default: 
         FailureText.Text = "Invalid login attempt"; 
         ErrorMessage.Visible = true; 
         break; 
       } 
      } 
     } 
    } 
} 

Antwort

0

Der Usermanager sollte eine zugrunde liegende DbContext haben mit ihr verbundenen. Sie können den Namen der Verbindungszeichenfolge ändern, die diesem Kontext zugeordnet ist.

Verwandte Themen