Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

ASP .NET hỗ trợ thoại cột

Khắc phục sự cố xác thực biểu mẫu

Tuỳ chỉnh cột này nhu cầu của bạn, chúng tôi muốn mời bạn gửi ý kiến của bạn về các chủ đề quan tâm bạn và các vấn đề mà bạn muốn xem trong tương lai gửi bài viết cơ sở kiến thức và hỗ trợ thoại cột. Bạn có thể gửi các ý tưởng và phản hồi bằng cách sử dụng mẫu Yêu cầu này . Cũng là liên kết đến biểu mẫu ở cuối cột này.

Chào mừng đến cột ASP.NET hỗ trợ thoại! Tôi là Jerry Orman. Tôi đã với Microsoft hơn 5 năm và đã dành hầu hết thời gian tập trung vào công nghệ liên quan đến trang Web, chẳng hạn như Microsoft FrontPage và công nghệ của Microsoft SharePoint mới. Tôi đã năm cuối cùng làm việc với Microsoft ASP.NET như một kỹ sư hỗ trợ. Tháng này trong cột hỗ trợ Voice, tôi sẽ giải thích cách khắc phục sự cố xác thực biểu mẫu trong Microsoft ASP.NET.

Khắc phục sự cố xác thực biểu mẫu

Khi bạn sử dụng xác thực mẫu ứng dụng ASP.NET, bạn có thể tìm thấy nó cần thiết để khắc phục sự cố xảy ra khi người dùng ngẫu nhiên được chuyển hướng tới trang đăng nhập. Trong một thế giới lý tưởng, sự cố này sẽ xảy ra một cách để bạn dễ dàng đính kèm một trình gỡ lỗi và chụp sự cố. Trong môi trường sản xuất, Tuy nhiên, có ít. Để khắc phục sự cố ngẫu nhiên như thế này, bạn phải đăng nhập thông tin liên quan đến sự cố để bạn có thể thu hẹp các nguyên nhân gốc.

Trong cột này, chúng tôi một thời gian ngắn sẽ bao gồm các khái niệm hình thức xác thực. Rồi chúng tôi sẽ xem xét trường hợp nào dẫn đến người dùng được chuyển hướng tới trang đăng nhập và làm thế nào để ghi lại dữ liệu liên quan đến cô lập vấn đề. Chúng tôi cũng sẽ bao gồm làm thế nào để thực hiện một giao diện IHttpModule đăng thông tin xác thực biểu mẫu.

Tổng quan về các hình thức xác thực

Khi người dùng authenticates với một trang Web bằng cách sử dụng hình thức xác thực, máy chủ tạo cookie. Giá trị của cookie là một mẫu mã xác thực vé. Cookie được chuyển đến máy chủ mỗi yêu cầu ứng dụng và lớp FormsAuthenticationModule decrypts giá trị cookie và xác định nếu người dùng không hợp lệ hoặc không.

Theo mặc định, lớp FormsAuthenticationModule được thêm vào tệp Machine.config. Lớp FormsAuthenticationModule quản lý trình FormsAuthentication.

Dưới đây là một mục từ tệp Machine.config:

<httpModule>     …other modules…
<add name="FormsAuthentication"
type="System.Web.Security.FormsAuthenticationModule" />
…other modules…
</httpModule>

Lưu lượng truy cập HTTP chung cho xác thực bằng cách sử dụng xác thực mẫu trông giống như sau:

  1. Máy khách gửi một nhận HTTP Default.aspx. Không có hình thức xác thực cookie được gửi.

  2. Máy chủ gửi trả lời 302 (chuyển) để Login.aspx.

  3. Máy khách gửi bài HTTP Login.aspx. Nó bao gồm thông tin đăng nhập.

  4. Máy chủ gửi trả lời 302 (chuyển) để Default.aspx. Cookie xác thực biểu mẫu được bao gồm.

  5. Máy khách gửi một nhận HTTP Default.aspx. Điều này bao gồm hình thức xác thực cookie.

Để biết thêm thông tin về triển khai và sử dụng xác thực biểu mẫu, hãy truy cập MSDN Web site sau:

http://msdn2.microsoft.com/en-us/library/7t6b43z4.aspx

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthentication(vs.71).aspx

http://msdn2.microsoft.com/en-us/library/system.web.security.formsauthenticationticket(vs.71).aspxĐể biết thêm thông tin về tính năng chia sẻ hình thức xác thực cookie, hãy truy cập trang ASP.NET Web sau:

http://quickstarts.asp.net/QuickStartv20/aspnet/doc/security/formsauth.aspx

Lý do người dùng có thể được chuyển hướng tới trang đăng nhập

Cookie xác thực mẫu bị mất

Tình huống 1


Trong trường hợp này, người dùng đăng nhập vào trang Web. Tại một số điểm, máy khách gửi yêu cầu đến máy chủ, và
FormsAuthenticationModule lớp không nhận các cookie. Bạn có thể xác định nếu một yêu cầu người dùng không có cookie bằng cách cho phép cookie ghi nhật ký trong Microsoft Internet Information Services (IIS). Để làm việc này, hãy làm theo các bước sau:

  1. Mở IIS Microsoft Management Console (MMC).

  2. Bấm chuột phải vào trang Web, và sau đó nhấp vào
    Thuộc tính.

  3. Nhấp vào tab trang Web , và sau đó bấm Kích hoạt ghi nhật ký.

  4. Đảm bảo rằng các định dạng đăng nhập là Định dạng tệp nhật ký W3C mở rộng.

  5. Bấm vào Thuộc tính.

  6. Bấm vào tab nâng cao , và sau đó nhấp vào
    Mở rộng thuộc tính.

  7. Trong phần Mở rộng thuộc tính, bấm để chọn hộp kiểm Cookie(cs(Cookie))Referer (cs(Referer)) hộp.

Sau khi sự cố này xảy ra, xác định khách hàng có sự cố và địa chỉ IP của máy khách đó. Lọc Nhật ký IIS trên địa chỉ IP mà khách hàng và xem cột <cookie>.

Lưu ý Bạn có thể sử dụng phân tích cú pháp của Nhật ký để phân tích Nhật ký IIS. Để tải xuống phân tích cú pháp Nhật ký, hãy ghé thăm Web site sau của Microsoft:

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07Sau khi bạn có danh sách các yêu cầu từ người dùng cụ thể, tìm kiếm các yêu cầu trang đăng nhập. Bạn biết chúng được chuyển hướng tới trang này, và bạn muốn xem các yêu cầu trước khi chuyển hướng xảy ra. Nếu bạn thấy một cái gì đó tương tự như sau, khách hàng hoặc không gửi cookie hoặc cookie đã bị xoá trên mạng giữa máy khách và máy chủ.

Đây là thông tin đăng nhập ban đầu.

Phương pháp

Trang

Phản hồi

Cookie

NHẬN

/Default.aspx

302 (chuyển)

Không có cookie

NHẬN

/Login.aspx

200 (thành công)

Không có cookie

BÀI VIẾT

/Login.aspx

302 (chuyển)

Không có cookie

NHẬN

/Default.aspx

200 (thành công)

.ASPXAUTH

NHẬN

/SomePage.aspx

302 (chuyển)

Không. ASPXAUTH Cookie

Đây là những yêu cầu khác theo yêu cầu một trang trên trang web mà không có máy. ASPXAUTH cookie.

Phương pháp

Trang

Phản hồi

Cookie

NHẬN

/SomePage.aspx

302 (chuyển)

Không. ASPXAUTH Cookie

NHẬN

/Login.aspx

200 (thành công)

Không. ASPXAUTH Cookie

BÀI VIẾT

/Login.aspx

302 (chuyển)

Không. ASPXAUTH Cookie

NHẬN

/SomePage.aspx

200 (thành công)

.ASPXAUTH


Lưu ý Yêu cầu đầu tiên mà người dùng có thể không có hình thức xác thực cookie nếu bạn đang tạo một cookie liên tục. Nhật ký IIS sẽ chỉ cho bạn các cookie đã nhận được yêu cầu. Yêu cầu đầu tiên để có hình thức xác thực cookie sẽ yêu cầu sau khi cố gắng đăng nhập thành công.

Tình huống 2


Cookie xác thực mẫu cũng có thể bị mất khi vượt quá giới hạn cookie của khách hàng. Trong Microsoft Internet Explorer, không giới hạn 20 cookie. Sau khi 20 cookie được tạo trên máy khách, cookie trước đó bị xoá khỏi bộ sưu tập của khách hàng. Nếu các. ASPXAUTH cookie được loại bỏ, người dùng sẽ được chuyển hướng tới trang đăng nhập khi xử lý yêu cầu tiếp theo.

Bạn có thể khắc phục các tình huống hai vậy. Xem yêu cầu trước khi chuyển hướng tới trang đăng nhập. Nếu yêu cầu sửa tạo cookie, đây sẽ là gì để điều tra.

Để biết thêm thông tin, hãy bấm vào số bài viết sau để xem bài viết trong Cơ sở Kiến thức Microsoft:

306070 số và giới hạn kích thước của cookie trong Internet Explorer


Bạn có thể sử dụng Fiddler để xem các tiêu đề HTTP được gửi cho khách hàng. Sau khi chụp lưu lượng, bấm đúp vào một yêu cầu và sau đó bấm vào tiêu đề để xem tiêu đề đặt Cookie. Nếu bạn theo dõi một lần đăng nhập thành công, bạn sẽ thấy tiêu đề đặt Cookie trả lời một lần đăng nhập thành công.

Để tải xuống Fiddler, ghé thăm website sau của Fiddler:

http://www.fiddlertool.com/fiddler/

Tình huống 3


Sau khi yêu cầu để lại khách hàng, có các lớp có thể ảnh hưởng đến các gói được gửi. Để xác định nếu thiết bị mạng loại bỏ các cookie, bạn phải ghi lại theo dõi mạng trên máy khách và máy chủ, và sau đó tìm trong nội dung yêu cầu cookie. Bạn muốn xem yêu cầu khách hàng để đảm bảo rằng các cookie được gửi và kiểm tra theo dõi chủ để đảm bảo rằng máy chủ nhận cookie.

Khách hàng yêu cầu

Đây là một yêu cầu nhận sau khi người dùng đã được xác thực. Hình thức xác thực vé thông tin được đánh dấu màu xanh. Này xác nhận rằng thông tin cookie trái máy khách. Khi bạn sử dụng công cụ thu thập mạng như Netmon, bạn thấy lưu lượng truy cập thực sự đi qua bộ điều hợp.

47 45 54 20 68 74 74 70-3a 2f 2f 6c 6f 63 61 6c   GET http://local68 6f 73 74 2f 46 6f 72-6d 73 41 75 74 68 4c 6f   host/FormsAuthLo
67 54 65 73 74 2f 57 65-62 46 6f 72 6d 31 2e 61 gTest/WebForm1.a
73 70 78 20 48 54 54 50-2f 31 2e 31 0d 0a 41 63 spx HTTP/1.1..Ac
63 65 70 74 3a 20 69 6d-61 67 65 2f 67 69 66 2c cept: image/gif,
…Other headers of the GET request…
63 68 65 0d 0a 43 6f 6f-6b 69 65 3a 20 2e 41 53 che..Cookie: .AS
50 58 41 55 54 48 3d 33-43 45 46 39 42 39 41 30 PXAUTH=3CEF9B9A0
43 33 37 41 44 46 36 33-45 36 42 44 33 37 42 36 C37ADF63E6BD37B6
39 43 44 41 32 35 30 30-30 46 38 30 37 32 38 46 9CDA25000F80728F
35 31 43 39 35 36 36 44-31 34 43 35 34 31 34 35 51C9566D14C54145
38 31 43 39 33 45 32 41-30 31 44 44 43 44 45 46 81C93E2A01DDCDEF
32 34 41 31 37 34 32 39-34 31 30 43 30 39 37 34 24A17429410C0974
42 33 45 43 42 30 36 34-32 32 38 45 33 35 33 39 B3ECB064228E3539
39 41 38 32 32 42 33 42-39 33 36 44 46 30 38 46 9A822B3B936DF08F
42 41 42 44 33 45 31 30-32 44 30 30 32 31 30 43 BABD3E102D00210C
32 45 31 33 39 38 30 37-39 42 32 33 35 32 39 46 2E1398079B23529F
34 46 35 44 37 34 41 3b-20 50 72 6f 66 69 6c 65 4F5D74A; Profile
3d 56 69 73 69 74 6f 72-49 64 3d 62 32 34 65 62 =VisitorId=b24eb

Phía máy chủ yêu cầu

Khi bạn xem yêu cầu đến máy chủ, bạn muốn đảm bảo rằng máy chủ đã nhận được các thông tin máy khách gửi. Nếu máy chủ không nhận được các thông tin, bạn cần phải điều tra các thiết bị khác trên mạng để xác định vị trí các cookie đã bị xoá.

Lưu ý Cũng có các phiên bản của bộ lọc ISAPI xoá cookie. Nếu bạn xác nhận rằng máy chủ Web nhận cookie, nhưng cookie không được liệt kê trong Nhật ký IIS, hãy kiểm tra bộ lọc ISAPI. Bạn có thể phải loại bỏ bộ lọc để xem nếu vấn đề được giải quyết.

Hình thức xác thực vé hết thời gian

Nguyên nhân phổ biến cho người dùng được chuyển hướng có hình thức xác thực vé đã hết hạn. Hình thức xác thực vé có thể hết thời gian chờ theo hai cách. Tình huống đầu tiên xảy ra nếu bạn sử dụng hết hạn tuyệt đối. Với hết hạn tuyệt đối, xác thực vé hết hạn khi hết thời gian hết hạn. Ví dụ: bạn đặt một hết hạn trước và người dùng truy cập trang web lúc 02:00. Người dùng sẽ được chuyển hướng tới trang đăng nhập nếu người dùng truy cập trang web sau 2:20 chiều

Nếu bạn dùng trượt hết hạn, trường hợp là phức tạp hơn một chút. Cookie và vé kết quả được Cập Nhật nếu người dùng truy cập trang web sau khi thời gian hết hạn nửa hết hạn. Ví dụ: bạn đặt một hết hạn trước bằng cách sử dụng trượt hết hạn. Người dùng truy cập trang web lúc 02:00 và người dùng nhận được một cookie được thiết lập để hết hạn lúc 2:20. Hết hạn chỉ được Cập Nhật nếu người dùng truy cập trang web sau 2:10 PM. Nếu người dùng truy cập trang web lúc 02:09, vé không được cập nhật do một nửa thời gian hết hạn chưa vượt qua. Nếu người dùng sau đó đợi 5 phút, ghé thăm trang web lúc 02:21, vé sẽ hết hạn. Người dùng được chuyển hướng tới trang đăng nhập.

Một cách tiếp cận loại vấn đề là hình thức xác thực cookie và vé thông tin đăng nhập. Bằng cách này, bạn có thể thấy nếu cookie đã được nhận bởi IIS và các giá trị là gì. Bạn có thể thực hiện việc này bằng cách viết một HttpModule, và sau đó cắm mô-đun đó vào đường kết nối yêu cầu. Bạn không cần phải sửa đổi mã ứng dụng của bạn để biết thông tin bạn cần.

Mẫu đính kèm hoạt động trong Microsoft .NET Framework 1.1 và .NET Framework 2.0 và có ý kiến trong suốt. Mẫu bao gồm các tệp sau:chú ý tôi sẽ cung cấp một liên kết tải xuống mã được cung cấp trong các tập tin FormsAuthLogger.zip.

Tôi sẽ chỉ ra các khu vực chính dưới đây:


Như thường lệ, vui lòng gửi ý tưởng về các chủ đề mà bạn muốn giải quyết trong tương lai cột hoặc trong cơ sở kiến thức sử dụng các
Biểu mẫu Yêu cầu này .

Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×