2011-07-06 26 views
21

Kimlik doğrulama kodu vardır:HttpContext.User.Identity ne zaman ayarlandı?

var authTicket = new FormsAuthenticationTicket(/*blahblah....*/); 
var cookie = new HttpCookie(FormsAuthentication.FormsCookieName, 
          FormsAuthentication.Encrypt(authTicket)); 
Response.Cookies.Add(cookie); 
var name = HttpContext.User.Identity.Name; // line 4 

ayıklama tablolara koyarak, ben 4. hatta name boş olduğunu bulmak. Ancak bu tarayıcı oturumunda bir sonraki görüşme yaptığımda, HttpContext.User.Identity.Name doğru şekilde ayarlanmış.

Bu değer ne zaman ayarlanıyor? Aşağıdaki Üyeliği kullanılıyorsa,

FormsAuthentication.Authenticate(name, password) 

ya: sizin ya benziyor Kodunuzdaki itibaren

+0

Sadece neden el ile çerez oluşturup sadece yanıtlamak yerine cevaba eklemek merak ediyorum: FormsAuthentication.SetAuthCookie()? –

+0

Ayrıca bir Auth tanımlama bilgisi ayarlamak üzereyseniz neden HttpContext'ten kullanıcı adını almanız gerektiğini merak ediyor musunuz? Kesinlikle bir Auth çerezi ayarlamak üzereyseniz - bu kullanıcıyı "giriş yapmış" olarak ayarlamak istediğinizi söylüyorsunuz - kullanıcı adlarını bilmiyorsanız bunu nasıl yapabilirsiniz? –

+1

@Nick - nedeni, bu, aşağıdakileri takip edebileceğiniz bir dizi gelişmenin en sonuncusudur: http://stackoverflow.com/q/6586156/7850 –

cevap

18

HttpContext.User.Identity.Name kurulacak Verilen istek kimlik doğrulama çerezini içeriyorsa. Durumunuzda, çerezin alınabilmesi için Tarayıcıya Yanıt eklenmiştir. Tarayıcı varsa, aşağıdaki istekleri üzerine çerezi ekleyecektir.

+0

Şimdi düşündüğüm şey buydu. Bunun dışında, tanımladığınız şeye uymayan davranışlar yaşıyorum. Buraya bakın: http://stackoverflow.com/q/6586156/7850 –

+0

Vay, adamım. Bu, orada sahip olduğunuz gerçekten şaşırtıcı bir problem gibi gözüküyor, ama konuşmadan topladığım gibi, çerez de giriş yaptıktan sonra, aynı zamanda hava istemcisi içinde yanıtla birlikte gönderiliyor. İlk probleminiz için yardım edip edemeyeceğimi görmeye çalışacağım. – tehshin

+0

, her iki formda kimlik doğrulama ve Windows kimlik doğrulaması için kimlik doğrulama tanımlama bilgisi mi yoksa yalnızca kimlik doğrulaması mı oluşturuyor? – MacGyver

2

aramak olurdu

Membership.ValidateUser(name, password) 
+0

Teşekkürler, ama sorduğum şey bu değil. .. –

İlgili konular