Соответствующий ответ, для которого он нужен, об базовой аутентификации с токеном
Объединение некоторой справки, информации, ответов и системы самоутверждения, которую я создал для реального веб-API, мог бы наконец использовать теги ролей и атрибутов дляэтот.Создан для тега авторизации в заголовке.
Вызов сервера:
var config = new HttpSelfHostConfiguration("http://localhost:8080");
config.UserNamePasswordValidator = new PHVValidator();
config.Routes.MapHttpRoute(
"API Default", "{controller}/{id}",
new { id = RouteParameter.Optional });
using (HttpSelfHostServer server = new HttpSelfHostServer(config))
{
server.OpenAsync().Wait();
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DominusForm());
}
Метод аутентификации: (жестко запрограммирован только для выбора, выберитепользователь, пароль и роли из любого места)
public class PHVValidator : System.IdentityModel.Selectors.UserNamePasswordValidator
{
public override void Validate(string userName, string password)
{
if (userName == "admin" && password == "123")
{
string[] rolarray = new string[] { "admin" };
IPrincipal principal = new GenericPrincipal(new GenericIdentity(userName), rolarray);
Thread.CurrentPrincipal = principal;
}
}
}
Метод:
[Authorize(Roles = "admin")]
public HttpResponseMessage Get()
{
do things
}