Я проверяю целесообразность использования OpenRasta как жизнеспособной альтернативы ASP.NET MVC.
Однако я столкнулся с камнем преткновения в отношении аутентификации.
Позвольте мне прояснить, "Аутентификация с открытым дайджестом" НЕ является опцией на данный момент.
Я читал, что Скотт Литтлвуд создал базовый форк аутентификации для OpenRasta, и я скачал исходный код из git и успешно его собрал.
Я сейчас пытаюсь заставить аутентификацию работать, так что если у кого-то есть реально работающая модель, я был бы очень благодарен. Вот что я сделал до сих пор:
//Authentication.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using OpenRasta;
using OpenRasta.Configuration;
using OpenRasta.Authentication;
using OpenRasta.Authentication.Basic;
using OpenRasta.Configuration.Fluent;
using OpenRasta.DI;
namespace myOpenRastaTest.Extensions
{
public static class ExtensionsToIUses
{
public static void BasicAuthentication<TBasicAuthenticator>(this IUses uses) where TBasicAuthenticator : class, IBasicAuthenticator
{
uses.CustomDependency<IAuthenticationScheme, BasicAuthenticationScheme>(DependencyLifetime.Transient);
uses.CustomDependency<IBasicAuthenticator, TBasicAuthenticator>(DependencyLifetime.Transient);
}
}
public class CustomBasicAuthenticator : IBasicAuthenticator
{
public string Realm { get { return "stackoverflow-realm"; } }
public CustomBasicAuthenticator()
{
}
public AuthenticationResult Authenticate(BasicAuthRequestHeader header)
{
/* use the information in the header to check credentials against your service/db */
if (true)
{
return new AuthenticationResult.Success(header.Username);
}
return new AuthenticationResult.Failed();
}
}
}
Теперь, чтобы проверить это, я просто создал экземпляр CustomBasicAuthenticator в моем HomeHandler.cs:
//HomeHandler.cs
using System;
using myOpenRastaTest.Resources;
namespace myOpenRastaTest.Handlers
{
public class HomeHandler
{
public object Get()
{
var custAuth = new myOpenRastaTest.Extensions.CustomBasicAuthenticator();
return new HomeResource();
}
}
}
Итак, мне нужно знать, какие шаги мне нужно предпринять дальше, поэтому я и спрашиваю о реальной рабочей модели, а не просто о теоретических ответах, поскольку я только что наткнулся на структуру 2 дня назад и, возможно, не знаю всех фреймворк OpenRasta, RESTful lingo, который вы можете бросить мне в ответ:)
Как только я получу представление об аутентификации, у меня будет хорошее представление о том, как приступить к оценке того, следует ли переносить существующий прототип портала asp.net в OpenRasta или нет.
Заранее спасибо ...