2010-08-06 2 views
0

Я хочу разрешить два типа авторизации в моем приложении .NET MVC 2.0. Один из них - хороший идентификатор/пароль старой моды (проверка подлинности форм), но я также хочу посмотреть заголовок страницы запроса для id/password. Если это предусмотрено, я хочу авторизовать на основании этого, передав аутентификацию формы и разрешив пользователю войти в систему. Как лучший способ сделать это в MVC?Несколько типов полномочий в .NET MVC 2.0

ответ

0

Не думаю, что для этого типа аутентификации есть что-то из коробки. Вы могли бы просто прочитать заголовки запросов и проверить, содержат ли они регистрационную информацию, и если они это делают, просто выполните проверку подлинности форм, но используя информацию для входа из заголовка запроса, например.

string userId = String.Empty; 
string password = String.Empty; 
foreach (var key in Request.Headers.AllKeys) 
{ 
    if (key == "UserId") 
     userId = Request.Headers[key]; 
    if (password == "Password") 
     password = Request.Headers[password]; 
} 

if (!String.IsNullOrEmpty(userId) && !String.IsNullOrEmpty(password)) 
    // attempt login 
else 
    // display login page 
0

Вы можете подключаться к запросам аутентификации либо в global.asax, либо путем написания настраиваемого HTTPModule. HTTPModule особенно хорош в подключении ко всем событиям в конвейере ASP.NET, включая проверку подлинности.

Однако использование этого для аутентификации на основе содержимого заголовка представляется очень высоким риском, зная, насколько легко подделать заголовки.

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