2011-08-30 7 views
1

System.Web.HttpContext.Current.User.Identity.Name이 "null"을 반환합니다.null을 반환하는 HttpContext.Current.User.Identity.Name

확실히 로그인했습니다.

어떻게 해결할 수 있습니까?

protected override void OnActionExecuting(ActionExecutingContext filterContext) 
{ 
    base.OnActionExecuting(filterContext); 

    if (Session["FirstName"] == null) 
    { 
     string loginName = System.Web.HttpContext.Current.User.Identity.Name; 
     string networkId = loginName.Split('\\')[1]; 
     Session["FirstName"] = new AD_Utility().FirstName(networkId); 
    } 
    ViewBag.FirstName = Session["FirstName"]; 
} 
+1

[HttpContext.Current.User.Identity.Name은 항상 string.Empty입니다.] (http://stackoverflow.com/questions/1056487/httpcontext-current-user-identity-name- is-always-string-empty) –

답변

3

web.config에 어떤 종류의 인증을 구성 했습니까? 또한, IIS 또는 dev 웹 서버를 사용하고 있습니까? IIS 또는 web.config에서 auth 또는 windows auth 형식을 활성화해야 할 수도 있습니다.

희망이 도움이됩니다.

편집 : -

위의 paolo가 게시 한 링크를 참조하십시오. ASP.NET MVC에서 양식 인증을 사용하는 예의 바른 예가 있습니다. 잠시 동안 ASP.NET MVC를 사용 해본 적이 없지만 사용자가 인증 된 후에 HttpContext.Current.User가 채워지지 않았다고 생각합니다. 인증 기능에 FormsAuthentication.SetAuthCookie 및 FormsAuthentication.RedirectFromLoginPage를 사용하고 있는지 확인하십시오.

위의 질문에서 보안 저장소로 AD를 사용하는 것 같습니다. HTTPContext.Current.User를 자동으로 채우려면 Windows 인증을 사용하는 것이 좋습니다.

+1

인증 모드 = "양식" – Susan

관련 문제