Проверка подлинности Windows на пользовательскую проверку подлинности при работе с профилем - PullRequest
1 голос
/ 29 сентября 2010

Я использую проверку подлинности Windows с профилем и хотел переключиться на пользовательскую проверку подлинности.Мой вопрос: как я могу указать, что мой пользователь прошел проверку подлинности и как установить Profile.UserName.Я знаю, что Profile.UserName - только для чтения.В моем файле Web.Config я изменяю authentication mode="None" и настраиваю IIS на включенный анонимный доступ.В global.asax я проверяю, существует ли Cookie для пользователя. Если нет, пользователь перенаправляется на страницу входа.Когда он отправляет, я создаю куки и в этот момент я устанавливаю информацию профиля.

Если кто-то может дать мне ссылку на это, я был бы очень признателен.

1 Ответ

1 голос
/ 29 сентября 2010

Похоже, что проверка подлинности с помощью форм может справиться с тем, что вам нужно.Добавьте следующую строку в корневой каталог web.config

<authentication mode="Forms">
  <forms name="XXXXX.ASPXAUTH" timeout="60" loginUrl="~/login.aspx" protection="All" path="/"></forms>
</authentication>

Замените XXX на то, что вы хотите назвать своим cookie.Также переименуйте login.aspx в любое имя, которое вы назвали своей страницей входа.Этот код перенаправит всех, кто не прошел аутентификацию, на страницу входа.

Затем в логике входа в систему используйте что-то вроде следующего кода C #

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, txtUsername.Text,
     DateTime.Now, DateTime.Now.AddMinutes(60), true, reader["user_level"] + "",
     FormsAuthentication.FormsCookiePath);
string hash = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash);
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration;
Response.Cookies.Add(cookie);

.отправить на уровне пользователя того, кто входит в систему (т.е. администратора, пользователя и т. д.), где у меня есть «reader [...»

Последнее, что вам нужно сделать, - настроить каждый защищенный каталог с его собственнымweb.config, в котором описываются разрешенные роли пользователей и запрещенные роли.Имена, которые вы используете для ролей в web.config, должны соответствовать значениям, которые отправляются в FormsAuthenticationTicket, и вам будет хорошо.

...