0

現在、ADに対してユーザーを認証するWebサイトを作成しようとしていますが、例として適切なリソースが見つからないようです。まず、すべてのADユーザーにサイトへのアクセスを許可したいと思います。テスト目的でIISとActiveDirectoryの役割を実行しているWindows2008r2サーバーがあります。

ASP.NET MVC-Active Directoryに対してユーザーを認証するように接続文字列を追加する必要があることは知っていますが、ユーザー名とパスワードを入力する必要があります。しかし、モデル、ビュー、コントローラー、およびweb.configファイルを示すある種の例が大いに役立ちます。

前もって感謝します

4

3 に答える 3

0

私は会社の内部Webアプリでこれを正確に行っているので、先に進んで答えます。間違っている場合は、これが私が知る方法です。

ユーザーがWebサイトにアクセスすると、UserPrincipal.Current.SamAccountNameが作成されます。したがって、必要なのは次のようなものだけです。

DirectoryEntry de = new DirectoryEntry("LDAP://" + adDomain);
DirectorySearcher ds = new DirectorySearcher(de);
ds.Filter = "(sAMAccountName=" + UserPrincipal.Current.SamAccountName + ")";
ds.PropertiesToLoad.Add("cn");
ds.PropertiesToLoad.Add("name");
ds.PropertiesToLoad.Add("mail");
SearchResult sr = ds.FindOne();
if (sr == null)
{
    // not found
}
...

したがって、SearchResultが返されない場合、ADドメインに対して認証されません...正しく実行されていることを願っています;)

于 2013-01-29T19:21:44.443 に答える
0

user2008963がこの質問を閉じる/受け入れることができるようにするために、コメントを回答として投稿します。

イントラネットテンプレートを使用して、プロジェクトで事前構成されたActiveDirectory認証を取得します。この認証方法に関するチュートリアルは、このリンクにあります。それは最新のものではありません、そしてあなたがそれに満足していないならば、ただグーグルでより良いものを探してください。

このリンクUser.Identityで説明されている、現在のユーザー名と使用できるActiveDirectoryでの彼の役割が必要な場合。コントローラ/アクションレベルでロール認証を追加するには、次のようにします。

[Authorize(Roles = "ADMIN")]
public class AdministrationController : Controller
{
    [Authorize(Roles = "SUPERADMIN")]
    public ActionResult SuperAdmin()
    {
        return View();
    }
}

これで私はあなたを始めることができることを願っています;-)

于 2013-01-29T20:24:50.353 に答える
0

WordpressプラグインのSimpleIntranetは、うまく機能する無料のActiveDirectoryプラグインアドオンを提供します。これは、セルフホスト環境でWordPressをサポートできる場合です。:)

于 2013-01-29T22:49:41.707 に答える