2012-07-10 34 views
13

Tôi đã tự hỏi liệu có thể lấy đối tượng người dùng hiện tại và nhận thông tin đăng nhập của họ để tôi có thể chuyển chúng đến đối tượng NetworkCredential mà tôi đang sử dụng để kết nối với AX của mình không .NET Business Connector. As, tại thời điểm này tôi phải xác định nó kết nối như một người dùng cụ thể mà ta đã đặt khi tôi tạo một đối tượng NetworkCredential:Lấy thông tin xác thực mạng từ người dùng hiện tại trong ứng dụng xác thực Windows

private NetworkCredential nc = new NetworkCredential("myUser", "myPassword", "myDomain");

Tôi đã hy vọng để làm một cái gì đó như: private NetworkCredential nc = (NetworkCredential)HttpContext.User; nhưng rõ ràng won rằng' t làm việc ...

bằng cách đó, nó dễ dàng hơn để theo dõi mà người dùng đã tạo ra một đơn đặt hàng ví dụ như vào lúc này tất cả mọi thứ được tạo ra bởi người sử dụng tôi đã xác định ..

Trả lời

23

CredentialCache.DefaultNetworkCredentials?

Thông tin đăng nhập được trả về bởi DefaultNetworkCredentials đại diện cho thông tin đăng nhập xác thực cho ngữ cảnh bảo mật hiện tại mà ứng dụng đang chạy. Đối với ứng dụng phía máy khách, đây thường là thông tin đăng nhập Windows (tên người dùng, mật khẩu và miền) của người dùng đang chạy ứng dụng.

+2

Khi tôi sử dụng điều này, thông tin xác thực là tất cả các chuỗi trống? – CallumVass

+1

Nó trả về một 'SystemNetworkCredential', một lớp nội bộ có nguồn gốc từ' NetworkCredential'. Có ma thuật ẩn bên trong nó, nhưng nó cố tình đặt tên người dùng, mật khẩu, vv thành chuỗi rỗng, nếu đó là những gì bạn đang đề cập đến. –

+0

Ahh ok, tôi sẽ cho nó một thử sau đó .. cảm ơn rất nhiều – CallumVass

4

I don' t hoàn toàn hiểu câu hỏi của bạn, nhưng là cuộc gọi của bạn đến từ ASP.NET mà bạn requir e thông tin đăng nhập? Bạn có thể thử:

Uri uri = new Uri("http://tempuri.org/"); 
ICredentials credentials = CredentialCache.DefaultCredentials; 
NetworkCredential credential = credentials.GetCredential(uri, "Basic"); 

Giả sử người dùng của bạn đã được xác thực thông qua Nhà cung cấp thành viên.

+3

Tôi đang sử dụng ứng dụng ASP.NET MVC 3 Windows Authentication, vì vậy tôi cho rằng chúng đã được xác thực? Khi tôi nhìn vào 'chứng chỉ', tất cả các trường là các chuỗi rỗng? – CallumVass

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