2011-02-08 6 views
6

У меня в настоящее время есть странная проблема с аутентификацией ASP.Net. Рассмотрим две следующие строки:FormsAuthentication.Authenticate не удается аутентифицировать

MembershipCreateStatus ct = new MembershipCreateStatus(); 
Membership.CreateUser("admin", "mypassword", "t[email protected]", "1", "1", true, out ct); 

Это зарегистрировать пользователя в моей базе данных. Я проверил это. Однако, когда я запускаю это сразу после того, как:

FormsAuthentication.Authenticate("admin", "mypassword"); 

аутентификации не удается. Странная вещь, я знаю, за то, что пользователь не существует в БД, а также подтверждается, если я бегу

MembershipUserCollection uc = Membership.FindUsersByName("admin"); 

и Калифорнийским действительно держит мою Пользователь Admin Withe все правильную информацию. Любые идеи или подсказки от кого-либо о том, почему Authenticate вернет false?

+0

Является ли вся последовательность w/i единственным HTTP-запросом? Вы можете попробовать сделать это в течение двух отдельных запросов. Как насчет создания «admin» один раз, Session.Abandon(), перезагрузите страницу, а затем посмотрите, сможете ли вы пройти аутентификацию. – xanadont

+0

Hrm nope. Даже если я пытаюсь выполнить аутентификацию на отдельной странице. Проблема должна исходить от части пароля правильно? Я имею в виду, что еще может пойти не так, если пользователь существует? – snwr

ответ

4

Я кое-что узнал немного раньше - при поиске информации на MSDN всегда читайте раздел замечаний. Вы будете удивлены тем, что в нем обычно содержится самая важная информация, которая, если ее не охватить, может задерживать вас часами, иногда днями. См. Этот раздел для этого метода here. Затем вызовите ValidateUser для авторизации, которая отличается от аутентификации. Посмотрите here.

+1

Ahh спасибо. В этом есть смысл. Легко заблудиться в msdn и не читать раздел замечаний на каждой странице хе. – snwr

+0

Многие ночи сна потеряли там, чтобы осознать это недавно, что было фактически ответом на вопросы на этом сайте. У меня было 2-3 вопроса, на которые я ответил подряд, которые были оттуда, поэтому я попытался посмотреть, работает ли это на практике, и это в основном около 70%, когда есть сложная ситуация - попробуйте сами, и вы будете Удивляться. Затем снова «Замечания» были бы более читабельны, если бы он был красным шрифтом или даже лучше называть этот раздел «Важным». Такая маленькая вещь, но Microsoft никогда не изменит ее, потому что ее возможная часть их обфускационной тактики позволяет разработчикам в темноте –

Смежные вопросы