2012-07-03 41 views
6

"Bạn đã bao giờ thực hiện bất kỳ chương trình .net nào? Có? Tốt, đây là một chương trình bị hỏng lớn, sửa chữa nó". Đó là tình huống tôi đang ở, vì vậy xin lỗi nếu đó là một câu hỏi dễ.C# asp.net nhận tên người dùng

Chương trình tôi đang làm việc để kéo tệp từ máy chủ web. Người dùng dự kiến ​​đã đăng nhập vào máy chủ web. Tôi cần phải kéo tên người dùng của người hiện tại đăng nhập vào máy chủ (hoặc chỉ cần chắc chắn rằng ai đó thực sự đăng nhập vào máy chủ).

Tôi đã thử cách sau và trả về một chuỗi trống.

user = HttpContext.Current.User.Identity.Name; 
+3

bạn có bật xác thực cửa sổ cho ứng dụng web trong IIS không? –

+0

Environment.UserName trả về cái gì? Xác thực –

Trả lời

7

Hãy đảm bảo bạn đang đặt xác thực cửa sổ trong tệp Web.Config. Ngoài ra kiểm tra như sau trước khi truy cập tên người dùng,

HttpContext.Current.User.Identity.IsAuthenticated 

Set Web.Config như sau,

<authentication mode="Windows"></authentication> 
+0

hiện được đặt thành biểu mẫu. Có nhiều nguy hiểm khi thay đổi cửa sổ đó không? babno

+1

+1 nhưng bạn không cần phải thay đổi sang Windows. Giữ chế độ xác thực cho những gì trang web đã được thiết kế cho. (tên người dùng sẽ được điền bằng bất kỳ chế độ xác thực nào khác, nếu đã đăng nhập) –

+1

Có. Giữ thiết kế như nó được. Và cố gắng hiểu formsauthentication bằng cách sử dụng liên kết sau http://stackoverflow.com/questions/8810496/forms-authentication-understanding-context-user-identity –

0

Các thuộc tính của đối tượng User thường dân bởi cơ chế thẩm định của ứng dụng (hình thức, Windows hay Tùy chọn) vì vậy bạn sẽ cần phải đảm bảo một trong những điều này được thực hiện trước khi bắt đầu truy cập vào User.

Để biết thêm thông tin, hãy xem docs at MSDN.

1

Đăng ký lần đầu tiên Web.config tệp cho <authentication> thẻ. Nếu bạn không tìm thấy nó thì ứng dụng của bạn có thể không sử dụng bất kỳ cơ chế xác thực chuẩn nào. Nếu trường hợp đó xảy ra, hãy xem bên trong login.aspx hoặc bất kỳ mã nào thực hiện xác thực. Ở đó bạn sẽ nhận được dữ liệu người dùng đã đăng nhập.

Tôi sẽ không khuyên bạn thay đổi bất cứ điều gì trong tệp web.config mà không cần nắm bắt một số công ty về những gì đang diễn ra trong ứng dụng.

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