2011-10-20 39 views
9

Tôi đã tạo một trang web. Đó là một trang web nội bộ. Nó là một trang web .NET 4.0. Tôi muốn lấy tên người dùng bằng cách sử dụng HttpContext.Current.User.Identity.Name của người duyệt trang web. Không có trang đăng nhập vì nó là nội bộ. Tôi không chắc chắn những gì tôi đang mất tích. Tôi có cần điều sau đây trong webconfig của tôi:Tại sao HttpContext.Current.User.Identity.Name trả về trống

<authentication mode="Windows"></authentication> 
<identity impersonate="true"/> 
<authorization> 
    <allow users="?"/> 
</authorization> 

và điều này:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 

+0

Bạn không nhận được tên đăng nhập của người dùng muốn ẩn danh mà không buộc phải xác thực một số loại - nếu đó là điều bạn hy vọng sẽ làm? –

Trả lời

14

Nó đi lên trống khi không được thẩm định. Bạn cũng có thể xác minh điều này bằng cách thực hiện:

HttpContext.Current.User.Identity.IsAuthenticated 

Kiểm tra cấp độ xác thực trong IIS, có được đặt để bật xác thực cửa sổ không?

4

Vâng, bạn không cần, ít nhất là một phần

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

là cần thiết nếu bạn đang sử dụng Windows Auth tích hợp.

Sau đó, bạn sẽ có thể lấy tên người dùng của người đăng nhập

Không, bạn không cần phải:.

<validation validateIntegratedModeConfiguration="false" /> 
+0

Tôi đã thay đổi webconfig của mình thành chỉ có , nhưng vẫn không có tên người dùng. Duyệt trang web từ máy tính của tôi, tôi hy vọng sẽ thấy tên người dùng của tôi (người dùng đó tôi đã đăng nhập vào máy). Không chắc chắn những gì tôi đang thiếu. – obautista

+2

Bạn đã định cấu hình auth cửa sổ tích hợp ở cấp ứng dụng trong IIS chưa? – Icarus

8

Trong iis vô hiệu hóa quyền truy cập ẩn danh và bật bảo mật cửa sổ tích hợp cho ứng dụng web của bạn.

2

Trong IIS, truy cập Sites \ Default Website \ [Trang web của bạn].

Chọn tùy chọn Xác thực và tắt Xác thực ẩn danh.

1

Trong trường hợp của tôi, hãy xóa <remove name="FormsAuthentication" /> dòng từ web.config giúp.

Tôi cũng có <authentication mode="Forms" /> trong mục <system.web>.

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