Tôi đã được giao nhiệm vụ sửa đổi ứng dụng ASP.NET MVC theo cách lướt web đến myurl? Username = xxxxxx sẽ tự động đăng nhập vào xxxxxx của người dùng mà không yêu cầu mật khẩu.Đăng nhập nhận dạng ASP.NET MVC không có mật khẩu
Tôi đã làm cho nó rất rõ ràng rằng đây là một ý tưởng khủng khiếp đối với nhiều lý do bảo mật liên quan và các kịch bản, nhưng những người phụ trách được xác định. Trang web sẽ không được công khai.
Vì vậy: có cách nào để đăng nhập mà không cần mật khẩu bằng cách mở rộng Microsoft.AspNet.Identity.UserManager và sửa đổi AccountController không?
Một số mã:
var user = await _userManager.FindAsync(model.UserName, model.Password);
if (user != null && IsAllowedToLoginIntoTheCurrentSite(user))
{
user = _genericRepository.LoadById<User>(user.Id);
if (user.Active)
{
await SignInAsync(user, model.RememberMe);
_userManager giữ một thể hiện của một Microsoft.AspNet.Identity.UserManager.
và SignInAsync():
private async Task SignInAsync(User user, bool isPersistent)
{
AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
var identity = await _userManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
if (user.UserGroupId.IsSet())
user.UserGroup = await _userManager.Load<UserGroup>(user.UserGroupId);
//adding claims here ... //
AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = isPersistent }, new CustomClaimsIdentity(identity));
}
AuthenticationManager sẽ OwinSecurity.
Hiện chúng tôi đang 'login' bạn :) –
... và tất nhiên không có công ty bao giờ có vấn đề với các mối đe dọa trong cuộc * ho * Snowden * ho *. Đối với câu hỏi của bạn, có nó dễ dàng. Làm mọi thứ kém an toàn hơn bao giờ hết. Tôi muốn bị cám dỗ để đặt mật khẩu của mọi người thành một chuỗi rỗng và sử dụng nó một cách ngầm định (nhanh chóng 'bẩn nhưng nó sẽ hoạt động và cũng làm cho điểm bảo mật của bạn vô giá trị cùng một lúc). Nếu bạn muốn làm điều đó "đúng", bạn có thể phân lớp các nhà cung cấp auth – Basic
@AndyRefuerzo: Tôi đã thêm mã có liên quan. – Bjorn