В конце концов, единственное различие, которое я использовал fiddler, чтобы посмотреть на разницу в запросах, которые работали для собственной службы RIA и внешней, и единственное отличие было заголовком реферера HTTP. Может показаться странным, что атрибут RIA requireAuthentication учитывает заголовок реферера, поэтому, возможно, это что-то совсем другое.
Мне удалось найти способ объединить мой домен и службы аутентификации в один и позволить разместить его в другом веб-приложении, что очень удобно. Подход заключался в том, чтобы поместить AuthenticationDomainService в службу основного домена. Он не позволяет использовать тот же шаблон использования на клиенте, аутентификация является операцией загрузки объекта, но все же упрощает использование поставщика членства ASP.Net для аутентификации.
[EnableClientAccess]
public class MyDomainService : LinqToEntitiesDomainService<MyEntities>, IAuthentication<User>
{
public class AuthenticationDomainService : AuthenticationBase<User>
{ }
private AuthenticationDomainService m_authService = new AuthenticationDomainService();
public User Login(string username, string password, bool isPersistent, string customData)
{
return m_authService.Login(username, password, isPersistent, customData);
}
....