7

Tôi đã thực hiện bảo mật cho api web của mình (tài khoản cá nhân) như được thảo luận here.Mã thông báo ủy quyền API ASP.NET hết hạn sớm

Tôi đã lưu trữ trang web trên godaddy (shared hosting) và hoạt động tốt. Khi tôi yêu cầu mã thông báo bằng cách sử dụng url "domain.com/token", tôi nhận được mã thông báo có ngày hết hạn trong vòng 15 ngày. Tôi đã thiết lập này trong "StartupAuth.cs" sử dụng

AccessTokenExpireTimeSpan = TimeSpan.FromDays(15) 

ví dụ:

{ 
    "access_token":"qwertyuiop.....", 
    "token_type":"bearer", 
    "expires_in":1209599, 
    "userName":"[email protected]", 
    ".issued":"Wed, 11 Feb 2015 01:00:00 GMT", 
    ".expires":"Thu, 26 Feb 2015 01:00:00 GMT" 
} 

(tôi đặt giá trị trong đoạn mã trên, nhưng bạn sẽ có được ý tưởng về ".expires" lĩnh vực

.

5 phút sau khi nhận được dấu hiệu, khi tôi cố gắng và tiếp cận "được" hay "bài" hay phương pháp nào trong API của tôi bằng cách thông qua ủy quyền: mang thẻ trong tiêu đề như:

Authorization: Bearer qwertyuiop..... 

tôi nhận được lỗi này:

{"Message":"Authorization has been denied for this request."} 

Mặc dù nó chỉ được 5 phút và mã thông báo được cho là kéo dài 15 ngày, khi nó hết hạn trong vòng 5 phút. Khi tôi yêu cầu bất kỳ phương thức "get"/"post" nào trong khoảng thời gian 5 phút, tôi nhận được phản hồi thích hợp với dữ liệu của mình bằng JSON. Tóm lại, ủy quyền thành công.

Tôi đã lặp lại hành vi này bằng cách thử nghiệm nó thông qua Fiddler, plugin REST của Chrome và thông qua ứng dụng dành cho thiết bị di động sử dụng API.

tôi có giá trị web.config cho phiên như sau (tôi nghĩ liên quan của nó)

<sessionState timeout="180" /> 

Lưu ý rằng hình xác thực không được sử dụng, vì vậy thời gian chờ trên phần đó trong web.config là không cần thiết.

Bất kỳ ý tưởng gì đang xảy ra? Thời gian chờ này gây ra cho người dùng ứng dụng dành cho thiết bị di động sử dụng API để đăng nhập lại mọi lúc và sau đó. Bất kỳ trợ giúp sẽ được đánh giá cao.

Cảm ơn.

+0

Tôi có cùng một vấn đề chính xác !! Có ai giúp gì không? –

+0

Thêm phím máy đã thực hiện thủ thuật. why_not cũng đã đề cập đến nó bên dưới. Làm cách nào để đánh dấu bài đăng của why_not là câu trả lời? –

Trả lời

4

Kiểm tra WebServer, Trong IIS, Khóa máy có thể được đặt ở cấp ứng dụng, mỗi khi hồ bơi ứng dụng tái chế Khóa máy mới được tạo ra do đó bạn cần một mã thông báo mới. Bạn có thể đặt phím Máy ở cấp độ Trang web hoặc Cấp Máy chủ Gốc. Có lẽ điều này có thể giúp

5

Thêm vào web.config không bị ảnh hưởng bởi ứng dụng hồ bơi tái chế

<system.web> 
    <machineKey validationKey="21F090935F6E49C2C797F69BBAAD8402ABD2EE0B667A8B44EA7DD4374267A75D7AD972A119482D15A4127461DB1DC347C1A63AE5F1CCFAACFF1B72A7F0A281B" 
      decryptionKey="261F793EB53B761503AC445E0CA28DA44AA9B3CF06263B77" 
      validation="SHA1"/> 

đọc ở đây như thế nào để tạo ra https://support.microsoft.com/en-us/kb/312906

-1

Hãy thử thiết lập Nhàn rỗi Time-out (phút) đến hơn 5 phút (được tìm thấy trong nhóm ứng dụng iis-> cài đặt nâng cao).

Các vấn đề liên quan