Là FormsAuthentication đã lỗi thời? [đóng cửa]


46

Tôi đang tạo một trang web bằng ASP.NET MVC 5. Microsoft đã phát hành bất kỳ công nghệ nào để thay thế FormsAuthentication hay họ vẫn khuyên bạn nên xác thực người dùng bằng FormsAuthentication cho MVC 5?


3
Xác định "OK" và "Lỗi thời" và giải thích "Không thích".
Robert Harvey

24
Tại sao câu hỏi này bị đóng cửa!? OP đang hỏi liệu FormsAuthentication có bị lỗi thời trong MVC 5 không và liệu có công nghệ nào khác thay thế nó không. Đây không phải là một câu hỏi dựa trên ý kiến ​​như "Bạn nghĩ gì về việc sử dụng FormsAuthentication trong MVC 5".
Tony_Henrich

3
@Tony_Henrich, vâng tôi không hiểu tại sao điều này bị đóng cửa. May mắn thay Rowan cung cấp một câu trả lời hữu ích trước khi đóng cửa. Một phần dựa trên câu trả lời của anh ấy, tôi vẫn sử dụng FormsAuthentication trong dự án MVC5 của mình.
sean717

3
Tôi không hiểu tại sao điều này đã bị đóng cửa? Đây không phải là câu hỏi mục đích của trao đổi ngăn xếp này, và không hỏi loại câu hỏi này trong stackoverflow?
contactmatt

3
Tôi không hiểu tại sao câu hỏi này bị đóng cửa? Dự án của tôi đang chuyển từ các biểu mẫu web asp.net 4.0 với xác thực mẫu sang asp.net 4.5 MVC5 và tôi đang nghiên cứu để có cách tiếp cận tốt nhất với mã hiện tại. Vui lòng không cho phép StackExchange kiểm duyệt kém hơn Wikipedia.
JoshYates1980

Câu trả lời:


50

Đúng. FormsAuthentication không được dùng trong MVC 5 trở đi.

Ít nhất, đó là câu trả lời ngắn.

Câu trả lời dài là FormsAuthentication truyền thống tiền MVC vẫn sử dụng được . Tuy nhiên, nó được loại bỏ theo hướng có lợi cho các phương pháp thay thế như ASP.NET Identity .

Trong Visual Studio 2013, các tùy chọn xác thực được cung cấp cho ứng dụng MVC 5 như sau:

Tùy chọn xác thực VS2013

Trong trường hợp này, Tài khoản người dùng cá nhân đang đề cập đến Nhận dạng ASP.NET .

Theo Microsoft, Tư cách thành viên ASP.NET trước đây đã được thay thế bằng ASP.NET Identity,

[...] ứng dụng mẫu sẽ được cấu hình để sử dụng ASP.NET Identity ( trước đây gọi là thành viên ASP.NET )

(Nhấn mạnh của tôi)

Microsoft cũng tuyên bố

Hệ thống thành viên mới dựa trên OWIN chứ không phải mô-đun xác thực ASP.NET Forms.

Vì vậy, Danh tính không thay thế chính xác FormsAuthentication, mà thay vào đó, nó đã thay thế hệ thống Tư cách thành viên sử dụng FormsAuthentication. Một điều tốt nữa, bởi vì theo một câu hỏi tôi đã hỏi vào năm 2013, Tư cách thành viên khá khó hiểu .

Một loại FormsAuthentication vẫn tồn tại mặc dù . Theo Microsoft ,

ASP.NET cũng có hỗ trợ xác thực mẫu thông qua FormsAuthenticationModule, tuy nhiên, chỉ có thể hỗ trợ các ứng dụng được lưu trữ trên ASP.NET và không có hỗ trợ yêu cầu. Dưới đây là danh sách so sánh tính năng thô: So sánh tính năng

Vì vậy, nếu bạn vẫn muốn sử dụng FormsAuthentication, hãy xem Tìm hiểu xác thực OWIN Forms trong MVC 5 .

Vì vậy, Microsoft khuyến khích bạn sử dụng ASP.NET Identity. Bạn không cần phải, tất nhiên. Bạn chỉ có thể chọn Không xác thực và dự án sẽ không triển khai bất cứ điều gì cho bạn. Sau đó, tùy thuộc vào bạn để đáp ứng nhu cầu thành viên / đăng nhập của bạn .


5
Cả OP và câu trả lời này đều không đề cập đến xác thực mẫu tùy chỉnh. Trong các ứng dụng của mình, tôi không muốn và không sử dụng các bảng điều khiển thành viên và bảng SQL Server tích hợp mà thay vào đó xác thực người dùng bằng mã và bảng người dùng của tôi. Sau đó, khi được xác thực, tôi sử dụng FormsAuthentication để tạo và thiết lập cookie xác thực. Tôi không sử dụng ASP.NET Identity nhưng tôi hy vọng nó cũng hỗ trợ cho kịch bản này.
Tony_Henrich

@Tony_Henrich, "xác thực người dùng bằng mã và bảng người dùng của tôi. Sau đó, khi được xác thực, tôi sử dụng FormsAuthentication để tạo và thiết lập cookie xác thực" Đó chính xác là những gì tôi làm. Tôi thực sự không thích các điều khiển thành viên ASP.NET và các bảng SQL Server của nó. Đối với hệ thống "thành viên ASP.NET" tôi biết rằng nó chắc chắn không dùng nữa và nên ngừng sử dụng (thực tế từ nhiều năm trước)
sean717

Một dự án nguồn mở tốt sử dụng MVC5 và xác thực mẫu tùy chỉnh: github.com/YodasMyDad/mvcforum
JoshYates1980
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.