В дополнение к тому, что упомянул jrummel, украсьте свой контроллер или действие следующим образом:
[Authorize(Roles = "DOMAIN\Domain Users")]
Это позволит только пользователям в определенной роли (в этом случае пользователи определенного домена) иметь доступ к контроллеру / действию (в зависимости от того, что вы украшаете). Кроме того, вы можете создать свой собственный атрибут авторизации для доменов:
/// <summary>
/// Specified which domains a user should belong to in order to access the decorated
/// controller/action
/// </summary>
public class DomainAuthorizeAttribute : AuthorizeAttribute
{
private String[] domains = new String[0];
/// <summary>
/// List of acceptable domains
/// </summary>
public String[] Domains
{
get { return this.domains; }
set { this.domains = value; }
}
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (httpContext == null)
{
throw new ArgumentNullException("httpContext");
}
// User not logged in
if (!httpContext.User.Identity.IsAuthenticated)
{
return false;
}
// No roles to check against
if (this.Domains.Length == 0)
{
return true;
}
// check if they're on any of the domains specified
String[] roles = this.Domains.Select(d => String.Format(@"{0}\Domain Users", d)).ToArray();
if (roles.Any(httpContext.User.IsInRole))
{
return true;
}
return false;
}
}
Что-то подобное должно позволить вам сделать:
[DomainAuthorize(Domains = new[]{ "DOMAIN1", "DOMAIN2" })]