本文整理汇总了C#中IMembershipService.AddUser方法的典型用法代码示例。如果您正苦于以下问题:C# IMembershipService.AddUser方法的具体用法?C# IMembershipService.AddUser怎么用?C# IMembershipService.AddUser使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IMembershipService
的用法示例。
在下文中一共展示了IMembershipService.AddUser方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: AccountModule
//.........这里部分代码省略.........
}
return View["register"];
};
Post["/create"] = _ =>
{
if (Context.CurrentUser != null)
{
return Response.AsRedirect("~/");
}
string username = Request.Form.username;
string email = Request.Form.email;
string password = Request.Form.password;
string confirmPassword = Request.Form.confirmPassword;
if (String.IsNullOrEmpty(username))
{
this.AddValidationError("username", "Name is required");
}
if (String.IsNullOrEmpty(email))
{
this.AddValidationError("email", "Email is required");
}
ValidatePassword(password, confirmPassword);
try
{
if (ModelValidationResult.IsValid)
{
ChatUser user = membershipService.AddUser(username, email, password);
return this.CompleteLogin(authenticationTokenService, user);
}
}
catch (Exception ex)
{
this.AddValidationError("_FORM", ex.Message);
}
return View["register"];
};
Post["/unlink"] = param =>
{
if (Context.CurrentUser == null)
{
return HttpStatusCode.Forbidden;
}
string provider = Request.Form.provider;
ChatUser user = repository.GetUserById(Context.CurrentUser.UserName);
if (user.Identities.Count == 1 && !user.HasUserNameAndPasswordCredentials())
{
this.AddAlertMessage("error", "You cannot unlink this account because you would lose your ability to login.");
return Response.AsRedirect("~/account/#identityProviders");
}
var identity = user.Identities.FirstOrDefault(i => i.ProviderName == provider);
if (identity != null)
{
repository.Remove(identity);
示例2: AccountModule
//.........这里部分代码省略.........
if (IsAuthenticated)
{
return Response.AsRedirect("~/");
}
ViewBag.requirePassword = requirePassword;
string username = Request.Form.username;
string email = Request.Form.email;
string password = Request.Form.password;
string confirmPassword = Request.Form.confirmPassword;
if (String.IsNullOrEmpty(username))
{
this.AddValidationError("username", "Name is required");
}
if (String.IsNullOrEmpty(email))
{
this.AddValidationError("email", "Email is required");
}
try
{
if (requirePassword)
{
ValidatePassword(password, confirmPassword);
}
if (ModelValidationResult.IsValid)
{
if (requirePassword)
{
ChatUser user = membershipService.AddUser(username, email, password);
return this.SignIn(user);
}
else
{
// Add the required claims to this identity
var identity = Principal.Identity as ClaimsIdentity;
if (!Principal.HasClaim(ClaimTypes.Name))
{
identity.AddClaim(new Claim(ClaimTypes.Name, username));
}
if (!Principal.HasClaim(ClaimTypes.Email))
{
identity.AddClaim(new Claim(ClaimTypes.Email, email));
}
return this.SignIn(Principal.Claims);
}
}
}
catch (Exception ex)
{
this.AddValidationError("_FORM", ex.Message);
}
return View["register"];
};
Post["/unlink"] = param =>
{
示例3: AccountModule
//.........这里部分代码省略.........
if (IsAuthenticated)
{
return this.AsRedirectQueryStringOrDefault("~/");
}
ViewBag.requirePassword = requirePassword;
string username = Request.Form.username;
string email = Request.Form.email;
string password = Request.Form.password;
string confirmPassword = Request.Form.confirmPassword;
if (String.IsNullOrEmpty(username))
{
this.AddValidationError("username", LanguageResources.Authentication_NameRequired);
}
if (String.IsNullOrEmpty(email))
{
this.AddValidationError("email", LanguageResources.Authentication_EmailRequired);
}
try
{
if (requirePassword)
{
ValidatePassword(password, confirmPassword);
}
if (ModelValidationResult.IsValid)
{
if (requirePassword)
{
ChatUser user = membershipService.AddUser(username, email, password);
return this.SignIn(user);
}
else
{
// Add the required claims to this identity
var identity = Principal.Identity as ClaimsIdentity;
if (!Principal.HasClaim(ClaimTypes.Name))
{
identity.AddClaim(new Claim(ClaimTypes.Name, username));
}
if (!Principal.HasClaim(ClaimTypes.Email))
{
identity.AddClaim(new Claim(ClaimTypes.Email, email));
}
return this.SignIn(Principal.Claims);
}
}
}
catch (Exception ex)
{
this.AddValidationError("_FORM", ex.Message);
}
return View["register"];
};
Post["/unlink"] = param =>
{
示例4: LoginModule
public LoginModule(IMembershipService membershipService,
IUserAuthenticator authenticator)
{
//Get the login page.
Get["/login"] = _ =>
{
string returnUrl = Request.Query.returnUrl;
if (IsAuthenticated)
{
return Response.AsRedirect(returnUrl);
}
var model = new LoginViewModel
{
ReturnUrl = returnUrl
};
Model.LoginModel = model;
return View["login", Model];
};
Get["/logout"] = parameters =>
{
return View["login"];
};
//Login.
Post["/login"] = parameters =>
{
var model = this.Bind<LoginViewModel>();
//If user is already authenticated redirect them to the returnUrl.
if (IsAuthenticated)
return Response.AsRedirect(model.ReturnUrl);
var result = this.Validate(model);
if (!result.IsValid)
{
SaveErrors(result.Errors);
Model.LoginModel = model;
return View["login", Model];
}
IList<Claim> claims;
if (authenticator.TryAuthenticateUser(model.Username, model.Password, out claims))
{
return this.SignIn(claims, model.ReturnUrl);
}
Page.ValidationSummary = "Your username or password was incorrect";
Model.LoginModel = model;
return View["login", Model];
};
Get["/register"] = parameters =>
{
var registerModel = new RegisterViewModel();
var returnUrl = Request.Query.returnUrl;
registerModel.ReturnUrl = returnUrl;
Model.RegisterModel = registerModel;
return View["register", Model];
};
//Register a new user.
Post["/register"] = _ =>
{
var registerModel = this.Bind<RegisterViewModel>();
Model.RegisterModel = registerModel;
var result = this.Validate(registerModel);
if (!result.IsValid)
{
SaveErrors(result.Errors);
return View["register", Model];
}
var user = new EmailUser
{
Email = registerModel.Email,
FriendlyName = registerModel.Name,
Id = registerModel.UserName,
IsAdmin = false,
LoginType = "Default",
Name = registerModel.UserName,
Password = registerModel.Password
};
user = membershipService.AddUser(user);
return this.SignIn(user, registerModel.ReturnUrl);
};
}
示例5: AuthenticationModule
public AuthenticationModule(IAuthenticationService authService, IMembershipService membershipService)
{
Post["/"] = _ =>
{
string userToken;
if (Request.Cookies.TryGetValue(Constants.UserTokenCookie, out userToken) &&
!String.IsNullOrEmpty(userToken) &&
authService.IsUserAuthenticated(userToken))
{
return 200;
}
return 403;
};
Post["/login"] = param =>
{
string name = Request.Form.user;
string password = Request.Form.password;
var response = Response.AsRedirect("/");
if (!String.IsNullOrEmpty(name) &&
!String.IsNullOrEmpty(password))
{
ChatUser user = membershipService.AuthenticateUser(name, password);
string userToken = authService.GetAuthenticationToken(user);
var cookie = new NancyCookie(Constants.UserTokenCookie, userToken, httpOnly: true)
{
Expires = DateTime.Now + TimeSpan.FromDays(30)
};
response.AddCookie(cookie);
}
return response;
};
Post["/register"] = param =>
{
string name = Request.Form.user;
string password = Request.Form.password;
var response = Response.AsRedirect("/");
if (!String.IsNullOrEmpty(name) &&
!String.IsNullOrEmpty(password))
{
ChatUser user = membershipService.AddUser(name, password);
string userToken = authService.GetAuthenticationToken(user);
var cookie = new NancyCookie(Constants.UserTokenCookie, userToken, httpOnly: true)
{
Expires = DateTime.Now + TimeSpan.FromDays(30)
};
response.AddCookie(cookie);
}
return response;
};
Post["/logout"] = _ =>
{
var response = Response.AsJson(new { success = true });
response.AddCookie(new NancyCookie(Constants.UserTokenCookie, null)
{
Expires = DateTime.Now.AddDays(-1)
});
return response;
};
}