MVCソリューションで次のアクション属性を実装しました。401エラー:Active DirectoryとAsp.Net MVC
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = true)]
public class AuthorizeADAttribute : AuthorizeAttribute
{
public string[] Groups { get; set; }
protected override bool AuthorizeCore(HttpContextBase httpContext)
{
if (base.AuthorizeCore(httpContext))
{
/* Return true immediately if the authorization is not
locked down to any particular AD group */
if (Groups == null)
return true;
foreach (var group in Groups)
if (httpContext.User.IsInRole(group))
return true;
}
return false;
}
}
そして、このようにそれを呼び出した:
public const string Admin = "MY_DOMAIN\\Admins";
public const string Users = "MY_DOMAIN\\Users";
public const string AddUser = "MY_DOMAIN\\AddUser";
[AuthorizeAD(Groups = new string[] { Admin, Users })]
public ActionResult GridData(...)
{ ... }
[AuthorizeAD(Groups = new string[] { Admin, Users, AddUser })]
public ActionResult Add(...)
{ ... }
誰かが私は「は、(私が掲示別の質問に)気づいたまでそれが、今のところ(ローカルで問題なし)細かい仕事をしていたようですが、見えましたデプロイされたインスタンスで401エラーが発生しました。
私は、誰もが問題がホスト環境に何ができるかのアイデアを持っていない限り、私のAuthorizeADAttributeは、再加工する必要があると思います。アイデアは、サイトにアクセスするには、ユーザーがアクティブディレクトリの管理者またはユーザーグループに属している必要があり、ユーザーロールに割り当てられている場合は、他のグループに属している必要があります。たとえば、完全に正常だ/
私は毎日少しずつ学校に通っています。私の問題は、クライアントに送信される実際の401ページにあります。それを削除する方法はありますか?サイズを小さくする方法があります。デフォルトの承認方法は...私は迅速に試してみましょう。 –
ダーリンは正しいです。私の記事「ASP.NET MVCを使用してイントラネットサイトを作成する方法」を参照してください。http://msdn.microsoft.com/en-us/library/gg703322(VS.98).aspx – RickAndMSFT