Сложно сказать здесь.
Вы настроили Аутентификацию формы?
Это процесс, который вы должны выполнить для проверки подлинности формы:
В вашем web.config вы устанавливаете систему аутентификации:
<authentication mode="Forms">
<forms loginUrl="Login.aspx" defaultUrl="Home.aspx" timeout="30" slidingExpiration="true" />
</authentication>
<authorization>
<deny users="?"/>
</authorization>
Ваша страница входа в систему (post-back) проверяет учетные данные (не вашу главную страницу).
Если пользователь действителен, тогда вы устанавливаете cookie:
FormsAuthentication.SetAuthCookie (идентификатор пользователя, False)
и перенаправить на другую страницу.
Теперь вы должны установить ваше основное чтение куки здесь:
protected void Application_AuthenticateRequest(Object sender, EventArgs e) {
if (HttpContext.Current.User != null) {
if (Request.IsAuthenticated == true) {
// Debug#1
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Context.Request.Cookies[FormsAuthentication.FormsCookieName].Value);
// In this case, ticket.UserData = "Admin"
string[] roles = new string[1] { ticket.UserData };
FormsIdentity id = new FormsIdentity(ticket);
Context.User = new System.Security.Principal.GenericPrincipal(id, roles);
// Debug#2
}
}
}
Очевидно, я упростил, но это путь, по которому вы должны следовать, чтобы делать все правильно.