Có khoảnh khắc mã bị mù.Nhà cung cấp thành viên nào triển khai người dùng được lưu trữ trong web.config?
ASP.NET 4.0.
Web.config:
<?xml version="1.0"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms name="DataViewer" loginUrl="login.aspx">
<credentials passwordFormat="Clear">
<user name="devuser" password="test" />
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
và một điều khiển đăng nhập:
<asp:Login ID="login" runat="server" />
Nếu tôi nhập tên người dùng và mật khẩu, và nhấn Login, nó bị treo.
Nếu tôi ngắt, tôi có thể thấy trong ngăn xếp cuộc gọi login.AuthenticateUsingMembershipProvider()
đang ở giữa gọi SqlMembershipProvider.ValidateUser()
. Không có cơ sở dữ liệu nào được định nghĩa hoặc tham gia vào dự án này chút nào, và tôi đã không chỉ định rằng SqlMembershipProvider nên được sử dụng.
Vì vậy, câu hỏi của tôi là, nhà cung cấp thành viên nào tôi nên sử dụng để có được ASP.NET sử dụng tên người dùng và mật khẩu trong phần tử <credentials>
của web.config
?
có thể là do nhà cung cấp thành viên mặc định là AspNetSqlProvider sử dụng cơ sở dữ liệu SQL Server làm kho lưu trữ của người dùng. – Scorpio
Tôi hy vọng đây là giải pháp tạm thời. Nó sẽ trở nên rất khó khăn để duy trì thông tin đăng nhập trong web.config vì mỗi thay đổi sẽ khởi động lại ứng dụng web. – jrummell
Tất nhiên. Tuy nhiên nó phù hợp cho kịch bản trong tầm tay.Tôi cần phải cung cấp bảo vệ tầm thường cho một ứng dụng đơn giản cho một người dùng (bao giờ) có mật khẩu sẽ không bao giờ thay đổi. Một giải pháp với phụ thuộc lớn hơn là không thích hợp. – tomfanning