2015-03-30 12 views
10

Trong ứng dụng MVC-5 của tôi, tôi phải tạo giá trị tem bảo mật theo cách thủ công. Việc thực hiện hiện tại của nhóm nhận dạng dường như sử dụng một guid.Cách tạo giá trị tem bảo mật cho danh tính asp.net (IUserSecurityStampStore)

Guid.NewGuid().ToString("D") 

là nó tiết kiệm được để tạo ra bản thân mình một Guid mới và sử dụng nó như là một giá trị tem bảo mật mới hoặc có thể điều này dẫn đến các vấn đề trong triển khai trong tương lai của bản sắc asp.net?
Có phương pháp nào để cho khuôn khổ nhận dạng tạo ra một giá trị tem cho tôi để việc triển khai của tôi được lưu cho những thay đổi trong tương lai không?

Cập nhật
Tôi đã thay đổi văn bản quesion để xây dựng chính xác hơn cho những gì tôi đang tìm kiếm.

Trả lời

14

Trong số tài liệu hướng dẫn thực hiện danh tính cho thực thể khuôn khổ, có vẻ như nó có thể là bất kỳ giá trị ngẫu nhiên:

IdentityUser.SecurityStamp Property

Một guid dường như do đó tốt đẹp và đoạn mã sau nên đáng tin cậy cũng với các phiên bản tương lai của danh tính asp.net.

Guid.NewGuid().ToString("D") 
7

ASP.NET Identity UserManager cung cấp phương thức UpdateSecurityStampAsync(string userId) sẽ tự động cập nhật tem bảo mật của người dùng. Vì vậy, trong thời gian tới validateInterval kết thúc, người dùng sẽ tự động bị đăng xuất và buộc phải đăng nhập lại.

UserManager.UpdateSecurityStampAsync(userId); 
+0

Đây không phải là câu trả lời cho câu hỏi của tôi. Tôi đã tìm kiếm một cách tương lai bằng chứng về cách tạo ra giá trị tem bằng tay (không phải để thiết lập nó). May mắn thay tôi tìm thấy trong các tài liệu của asp.identiy Entity-Framework-thực hiện các lưu ý rằng bất kỳ giá trị ngẫu nhiên sẽ làm. Xin vui lòng xem câu trả lời của tôi. Dù sao cũng cảm ơn bạn. – HCL

+0

Bạn có thể xem tại đây danh tính đó cũng sử dụng Hướng dẫn để tạo các tem bảo mật mới, vì vậy tôi nghĩ rằng bạn không có vấn đề gì khi tạo riêng cho mình. https://github.com/aspnet/Identity/blob/dev/src/Microsoft.AspNet.Identity/UserManager.cs#L787 Danh tính chỉ cung cấp hai phương thức 'UpdateSecurityStampAsync' và' GetSecurityStampAsync' để bạn sẽ phải tạo chuỗi của riêng mình nếu bạn muốn có quyền kiểm soát. –

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