Tôi đang làm việc trên một trình tạo hình ảnh xác thực nhanh cho một trang web đơn giản mà tôi sắp xếp lại và tôi hy vọng sẽ chuyển một khóa được mã hóa vào url của trang. Tôi có thể có thể làm điều này như một tham số chuỗi truy vấn dễ dàng đủ, nhưng tôi hy vọng không quá (chỉ vì không có gì khác chạy ra khỏi chuỗi truy vấn) ...C# Byte [] đến Url Friendly String
Mã hóa của tôi tạo ra một byte [], sau đó chuyển đổi bằng cách sử dụng Convert.ToBase64String (byte []) thành một chuỗi. Chuỗi này, tuy nhiên, vẫn không khá thân thiện với url, vì nó có thể chứa những thứ như '/' và '='. Có ai biết về một chức năng tốt hơn trong khuôn khổ .NET để chuyển đổi một mảng byte vào một chuỗi thân thiện với url?
Tôi biết tất cả về System.Web.HttpUtility.UrlEncode() và tương đương của nó, tuy nhiên, chúng chỉ hoạt động đúng với thông số chuỗi truy vấn. Nếu tôi mã hóa url '=' bên trong đường dẫn, máy chủ web của tôi sẽ trả lại lỗi yêu cầu 400 lỗi.
Anyways, không phải là một vấn đề quan trọng, nhưng hy vọng ai đó có thể cho tôi một giải pháp tốt đẹp
** EDIT: Chỉ cần được hoàn toàn chắc chắn chính xác những gì tôi đang làm với chuỗi, tôi figured tôi sẽ cung cấp một chút thêm thông tin.
byte [] kết quả từ thuật toán mã hóa của tôi nên được cấp thông qua một số loại thuật toán để biến nó thành chuỗi thân thiện với url. Sau đó, nó trở thành nội dung của một XElement, sau đó được sử dụng làm tài liệu nguồn cho phép chuyển đổi XSLT, và được sử dụng như một phần của thuộc tính href cho một neo. Tôi không tin rằng việc chuyển đổi xslt gây ra sự cố, vì những gì đang diễn ra trên đường dẫn dường như là tham số chuỗi truy vấn được mã hóa nhưng gây ra HTTP 400
Tôi cũng đã thử HttpUtility.UrlPathEncode() trên một chuỗi base64, nhưng điều đó dường như không làm các trick trong hai (tôi vẫn kết thúc với '/' s trong url của tôi) **
Nghiêm túc? Tôi phải thử ngay bây giờ ... – LorenVS
+1: Base64 là một mã hóa nhỏ gọn hơn là chỉ sử dụng các chữ số hex từ 'BitConverter.ToString'. – LukeH
Làm việc như một sự quyến rũ ... Wicked (ít được biết đến) chức năng đó ... Cảm ơn người đàn ông – LorenVS